假设我们有一个简单的回声服务器(在第一次请求时调整为较长时间):
那么,一个名为
其中
显然,我得到的是以下混乱的内容:
答案为11111 22222 答案为22222 22222 答案为11111 11111 答案为22222 11111
因为我安装了两个相同事件的监听器。这可以很容易地解决,但我不清楚如何在客户端正确有序地获取响应,而无需在服务器端进行更多的编程帮助。
所有这些似乎都太过繁琐了。 难道不能正确轻松地编写
var waiting = 8000;
io.on('connection', function(socket){
socket.on('doEcho', function (data) {
setTimeout( function () {
socket.emit('echoDone', data);
}, waiting);
waiting = 1;
});
});
那么,一个名为
index.html
的客户端脚本会执行以下操作:askEcho ("11111", function (resp) {
console.log("answer for 11111 " + resp);
});
askEcho ("22222", function (resp) {
console.log("answer for 22222 " + resp);
});
其中
askEcho
是以下有缺陷的函数,假装是一个RPC存根:function askEcho (text, fun) {
socket.emit('doEcho', text);
socket.on('echoDone', function (data) {
fun ( data );
});
}
显然,我得到的是以下混乱的内容:
答案为11111 22222 答案为22222 22222 答案为11111 11111 答案为22222 11111
因为我安装了两个相同事件的监听器。这可以很容易地解决,但我不清楚如何在客户端正确有序地获取响应,而无需在服务器端进行更多的编程帮助。
所有这些似乎都太过繁琐了。 难道不能正确轻松地编写
askEcho
函数吗?