我正在研究一个在线的,基于转向的游戏,以便自学Node.js和Socket.IO。服务器端解决了游戏的某些方面。在其中一个功能期间,服务器可能需要来自客户端的输入。有没有办法可以“暂停”服务器功能的分辨率,以便等待客户端进行响应(通过var x = window.prompt
)?如何用socket.io等待客户端响应?
这里是我的工作代码的一个想法:
服务器:
for (some loop){
if (some condition){
request input via io.sockets.socket(userSocket[i]).emit('requestInput', data)
}
}
客户:
socket.on('requestInput', function (data) {
var input = window.prompt('What is your input regarding ' + data + '?');
//send input back to the server
socket.emit('refresh', input)
});
有什么想法?
“暂停解析”是什么意思? – hexacyanide
也许“等待”会是更好的词。我希望服务器的功能在继续循环之前等待来自客户端的输入。 – Cole
@Cole你不能暂停执行。你可以做的是将用户输入后应该执行的所有内容移动到另一个函数中,并在用户响应时调用它。 – fardjad