繁体   English   中英

Socket.io:发送到指定的客户端

[英]Socket.io: Emit to specified Clients

我有一个node.js / socket.io网络应用程序,当前正在正确轮询API并使用发出的结果填充html页面。

我的问题是,需要使用多个用户,并且我想分开他们的实例,以便每个人都只会收到他们的查询结果。

现在,当任何人使用该网站时,它将返回另一个可能也在使用该网站的用户的结果。 我试图使用这种方法来解决这个问题:

var clients = {};
 io.sockets.on('connection', function(socket){
    console.log("this is "+socket.id);
    clients.id = socket.id;
 })

io.sockets.socket(clients.id).emit('progress',{info:listing});

当然,这将由登录该站点的每个新用户替换,因此,发给原始用户的所有内容现在都将发给新用户。

我想知道的是是否有内置函数可以解决此问题,或者我是否应该继续使用另一个持久存储。

任何帮助将不胜感激。

编辑

通过将套接字对象存储在express.sessionStore中而不是仅存储在程序中。 io.sockets.on(function(socket){ request.sessionStore.socket = socket; })

上面的代码现在可以正常工作,并且仅向事件发起者发出。

看起来好像已经在另一个线程中得到了回答。 这个想法是创建一个客户端数组,并将其与某种类型的客户端/用户标识(例如ID或名称)相关联。

通过socket.id向客户端发送消息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM