【发布时间】:2015-02-22 11:15:27
【问题描述】:
我正在尝试使用以下代码实现一个简单的锁:
服务器:
socket.on('lock', function(ressInfo)
{
var lock = false;
if(ressLocks.indexOf(ressInfo.id) === -1)
{
ressLocks.push(ressInfo.id);
lock = true;
}
socket.emit("lock", lock);
});
客户:
this.requestLock = function(ressInfo, callback)
{
if(currentlyOnline)
{
socket.emit("lock", ressInfo);
socket.on("lock", function(lock)
{
// this gets triggered one additional time with each lock
callback(lock);
});
}
else
{
callback(true);
}
}
在第一次通话中,我收到了一个带有 true 的回调,在第二次通话中,我收到了两个带有 false 的回调,在第三个通话中,等等。
这里发生了什么?为什么socket.on 会被多次调用?
【问题讨论】:
标签: javascript node.js sockets callback socket.io