node.js 및 socket.io를 사용하여 사용자가 텍스트 영역 (거의 tchat와 비슷 함)에 글을 쓸 수 있도록합니다. 하지만 나는 번으로 번갈아 가야합니다.. 다음과 같이 입력하십시오 :Node.js w/Socket.io - 사용자 전환 기능 (쓰기 허용 및 금지)
- 사용자 1이 작성 중입니다. 사용자 2 및 사용자 3 은을 쓸 수 없습니다.
- 사용자 1이 메시지를 보냅니다.
- 사용자 1 은을 쓸 수 없습니다. 사용자 2는 쓰기가 허용됩니다. 사용자 3 은을 쓸 수 없습니다.
- 사용자 2가 메시지를 보냅니다.
- 사용자 1 및 사용자 2 은을 쓸 수 없습니다. 사용자 3은 쓰기가 허용됩니다.
- 사용자 3이 메시지를 보냅니다.
- 사용자 1이 편지를 쓰고 있습니다. 사용자 2 및 사용자 3 은을 쓸 수 없습니다.
- ... 지금은 등
, 나는 (클라이언트 측)이 있습니다
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');
})
클라이언트에서 나를 만든다 : 서버 측
var ucan;
$('#txtform').submit(function(event){
if(ucan){
socket.emit('trigger', me);
ucan = false;
}
$('#txtArea').attr('readonly','true');
}
})
옆면 :
socket.on('turn', function(){
ucan = true;
$('#txtArea').removeAttr('readonly');
})
문제는 응용 프로그램에 연결할 때 새 사용자에게 쓰기 권한이 있으므로 첫 번째 라운드는 동시에 모두 쓸 수 있으며 모두 작성하면 권한이 루프되지 않으며 아무도 쓸 수 없다는 것입니다.
node.js 또는 socket.io 내부에 뭔가가있을 수 있다고 생각했기 때문에이 방법을 더 간단하게 할 수있었습니다 (내가 한 방식이 아마도 최고는 아님). 웹상에서 아무 것도 발견하지 못했습니다. 당신의 도움을 요청하고 있습니다.
감사합니다.
PS : 실례 내가 사용자가 연결할 때
감사합니다. 현재 귀하의 솔루션을 개발 중입니다.이 솔루션이 제대로 작동하는지 알려 드리겠습니다. (그것은 사용자 배열을 통해 루프의 문제를 해결하지는 못하지만 문제를 생각하는 새로운 방식을 제공하므로 사용자의 답변을 찾을 때 유용 할 것입니다) – hugohil