Socket.IO第一次连接

时间:2015-04-24 03:26:47

标签: node.js socket.io

我一直在使用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实现相同的结果?例如:运行这两个函数一次?

谢谢:)

1 个答案:

答案 0 :(得分:1)

您可以安装常规事件处理程序,然后在第一次调用事件处理程序后删除它:

function handleFirstConnection(socket) {
    auditMessagesTableForNewMessages(socket);
    auditRelationsTableForNewFriendships(socket);
    io.removeListener('connection', handleFirstConnection);
}

io.on('connection', handleFirstConnection);