使用pushMessageByUids给非当前用户推送消息如何知道用户的sid呢

具体场景是:
搜索并添加好友,如果该好友当前在线,则会收到添加好友请求。这个请求应该是用pushMessageByUids来推送把,然后怎么知道他的sid(服务器id)呢

标签: 开发求助
MissLee 在 3-17 16:32发布 分享到 weibo
2 回复
#1 MissLee 3-17 16:44 回复

我知道的方法就是用户每次登录时,把serverId存到数据库该用户的user表中,然后别人推送给他消息的时候去查询他的user表,获取serverId,不知道是不是最好的办法?

#2 MissLee 3-17 17:03 回复

找到答案了,如下:
目前的SessionService都是在单个frontend服务器上的。
如果需要全局广播消息,可以使用: channelService.broadcast接口,它会对每台connector上绑定的所有Session推送,它还支持filter参数,可以通过函数过滤出想要广播的session。

如果要给给全局的某个频道的用户发消息, 现在的做法是建立一台全局的channel服务器,所有用户都在这台channel服务器, 然后通过这台channel服务器给客户端推消息。

到0.4版我们可以支持将session和channel存到redis, 这样就可以通过全局的channel和session数据推消息了。
======================== 分割线 ================
但是不知道redis承受能力是多少,能承受5000w的日活跃用户吗?我想做全国同服的游戏。

回到顶部