0
我正在建立一些node.js和socket.io,它允許用戶在textarea(幾乎像一個tchat)寫入,但我需要他們交替寫。例如:Node.js W/Socket.io - 切換用戶功能(允許和防止寫入)
- 用戶1正在寫入。用戶2和用戶3 不能寫入。
- 用戶1發送消息。
- 用戶1 不能寫。用戶2被允許寫入。用戶3 不能寫。
- 用戶2發送消息。用戶1和用戶2 不能寫入。用戶3被允許寫入。
- 用戶3發送消息。
- 用戶1正在寫入。用戶2和用戶3 不能寫入。
- ...等
現在,我(在客戶端):
var ucan;
$('#txtform').submit(function(event){
if(ucan){
socket.emit('trigger', me);
ucan = false;
}
$('#txtArea').attr('readonly','true');
}
})
在服務器端:
socket.on('trigger', function(user){
u = user.id + 1; // switch to next user since users[] (further)
// stores all the users with their ids
if(u >= users.length){
u = 0; // loop throug all users
}
io.sockets.socket(users[u]).emit('turn');
})
這也讓我在客戶端上方再次:
socket.on('turn', function(){
ucan = true;
$('#txtArea').removeAttr('readonly');
})
問題是,當他們在應用上連接時,新用戶有權寫入,因此第一輪可以同時寫入,並且在全部寫入時,權限不會循環,也不會寫入。
我想也許在node.js或socket.io裏面存在一些東西,它允許我更簡單地做到這一點(我做的方式可能不是最好的),或其他任何東西,但是因爲我是初學者,而且我在網上沒有發現任何東西,我在尋求你的幫助。
謝謝!
PS:請原諒我的英語不是我的第一語言:)
感謝您的快速! 我目前正在處理您的解決方案,我會告訴您這是否有效。 (它不能解決通過用戶數組循環的問題,但它給了我思考問題的新方法,所以我可能會找到解決問題的方法) – hugohil 2013-05-06 22:51:37