我想每隔几秒钟(2-5)运行一个任务,然后将结果广播给客户端,任务正在进行api调用,然后以某种方式计算返回的数据。在没有客户端的情况下运行任务没有任何意义,同时为每个连接的用户运行相同的任务会使事情变得更糟。当连接事件发生时使用计数器并将其加1,当断开连接有效时,将其删除1?有更聪明,更优雅的解决方案吗?
答案 0 :(得分:1)
在Socket.IO 0.7中,你在命名空间上有一个client方法,它返回一个包含所有连接套接字的数组。
var clients = io.sockets.clients();
var clients = io.sockets.clients('room'); // all users from room `room`
从那里你可以检查数组的长度,找出连接的套接字数量。