聊天系统 多服务器部署

smith

在线用户保存在 workerman\logs\data.php
部署在多台机器
如何查询所用在线用户?

4113 2 0
2个回答

phpgame

给你一个方案,可能不是最优的,脱离框架本身,在业务中处理在线用户

建立一个memcache集群
登陆的时候,在onConnect中成功登陆的uid,写一个key,onlinelist写入memcache集群,这个跟框架自带的storeuid没关系
退出的时候把这个key中uid给处理掉
如果来列表,直接从其他地方获取这个memcache的key,就是所有的在线用户了
部署单机或者多台机器的话,都可以用以上方式来处理
考虑一下,换成redis集群可能会比memcache更好处理

  • 暂无评论
walkor

部署在多台机器可以使用memcache存储在线用户,memcache类在 applications/XXX/Lib/Store.php.for-memcache(如果没有请更新代码), 覆盖原有applications/XXX/Lib/Store.php,并更改里面的memcache ip和端口。

部署在多台服务器可参考服务器部署部分
http://wenda.phpgame.cn/?/article/1

  • 暂无评论
年代过于久远,无法发表回答
🔝