请问我用socket.io-redis可以实现广播,但是怎么实现一对一聊天呢?
发布于 1个月前 作者 330216851 332 次浏览 来自 问答

现在的情况是运行了2个socket.io的聊天程序,使用了socket.io-redis,群聊的消息大家都能看得到,但是现在我想一对一的进行聊天,不知道怎么弄了,希望指导一下。就是A服务器的某一个用户怎么才能向B服务器的某一个用户发送消息呢?

5 回复

socketid 在用户登录分配服务器的时候 先把用户的socketid 注册到 一个 路由表中 发消息的时候 根据socketid 就可以知道 那个用户在哪个服务器上了 然后用过服务器内部的消息机制 可以还用socket 也可以是RPC 通知用户所在的服务器 然后用户所在的服务器 再根据socketid 向指定用户发消息 不知道这样说你明白了没

不明白哦,这个路由表从哪里可以获取到啊?

使用socket.io 的chanel api,可以对让socket 加入不同的频道,然后用io.in(‘chanel’).broadcast,具体查询socekt.io的api就知道了

但是可能在不同的服务器节点上哦?

吹一下: client发送时包含userId, server保存{userId:client},emit send message时按照userId过滤。

回到顶部