我正在使用node.js和socket.io构建一些东西,它允许用户在textarea中写入(非常像tchat),但我需要它们交替写。类似的东西:
目前,我(在客户端):
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中的东西,它允许我更简单地做这个(我做的方式可能不是最好的),或其他任何东西,但因为我是初学者而且我发现网上没有任何内容,我在寻求你的帮助。
谢谢!
p.s:请原谅我的英语,这不是我的第一语言:))
答案 0 :(得分:0)
默认情况下只读取,然后在用户连接时在服务器端,如果它们是唯一连接的套接字,则发出“转向”。您可能还应该处理轮到其断开连接的人的情况,此时您应该触发并让其他人控制。