我一直在使用socket.io 0.9版,以下代码运行良好:
// Socket.IO - Executes for Every Socket Connection
io.on('connection', function (socket) {
socket.on('userid', function (userid) {
socket.userid = userid;
});
});
// Socket.IO - Executes on First Socket Connection Only
io.once('connection', function (socket) {
auditMessagesTableForNewMessages(socket);
auditRelationsTableForNewFriendships(socket);
});
我刚刚升级到Socket.IO 1.3.5并且我发现方法.once()似乎不再存在。我需要能够在第一次启动套接字时运行几个函数(你可以在once()函数中看到)。
有没有办法可以用新的套接字1.3.5实现相同的结果?例如:运行这两个函数一次?
谢谢:)
答案 0 :(得分:1)
您可以安装常规事件处理程序,然后在第一次调用事件处理程序后删除它:
function handleFirstConnection(socket) {
auditMessagesTableForNewMessages(socket);
auditRelationsTableForNewFriendships(socket);
io.removeListener('connection', handleFirstConnection);
}
io.on('connection', handleFirstConnection);