请问大家是如何将websocket在线连接用户列表数据和其他应用共享呢?

0

我目前的websocket服务已经开发完了,不过我发现在将在线用户列表的信息和其他应用共享的时候,搞得太复杂了,我先说说的处理方法吧:


我是在 redis 里面存了一个 sid 为 key,uid 为 value 的数组,sid是客户端js生成的一个唯一字符串,该值在用户登录的有效期内是保持不变的,uid就是数据表里的id字段值,自增数字型。


客户端每次连接成功后都会给服务发一条消息,服务端在 onMessage 回调方法里面会将 redis 里面的数据取出,然后 json_decode 处理成数组,然后检查当前的sid在不在这个数组里面,不在加加进去,加完之后又将该数组 json_encode 处理成字符串存回 redis 中去。


当客户端连接关闭的时候,又是 json_decode 解开,删除对应的 sid ,然后 json_encode 处理存回去。


我感觉我这个过程巨复杂,如果用户不停的在网页之间跳来跳去,就会不停的连接和关闭,感觉这个对服务器的压力太大了,所以请教各位有没有什么简单的方法呢?

已邀请:

lscho

赞同来自:

http://doc2.workerman.net/push-in-other-project.html


GatewayClient 或许可以解决你的问题

wanglong126 - 老大哥

赞同来自:

我也有类似的需求
我是使用的mysql数据库
用户上线时,设置online为1,离线时设置为online为0
页面依照是否在线和ID排序让在线的保持在前端
最近也正在考虑,如何实现在接口中获取客户端的实时状态

要回复问题请先登录注册