关于gatewayworker的疑问

qkhhxkj

我现要用gatewayworker开发一个棋牌游戏的服务服务器
那现在有一个问题就是
如果 BusinessWorker 的进程设置大于1
那么连接上来的两个玩家怎么能保证进入到相同的房间
以我现在的理解
1 设置 BusinessWorker 进程数 为1
2 设置 设置Gateway到BusinessWorker路由规则
请问还有其它的方法吗

PS
强烈建议网站加一个找回密码功能,还有就是问题检索的功能

阅读 233
1个回答

walkor

我的理解是你要把同一个房间的用户放在一个进程里,这样好在内存中共享一些变量。
最好的方案是 设置Gateway到BusinessWorker路由,比如每个请求都带一个房间号,然后gateway根据房间号将请求路由到固定的进程。
不过最好不要用内存来存储重要数据,数据存在存储里会好一些,避免业务bug导致进程退出数据就没了,或者线上要升级代码,reload后导致数据丢失。如果数据都用存储存起来,也就不用考虑路由到同一个进程的问题了。

如果是我做棋牌的话,我可能直接用workerman来做,比如开10个进程,分别监听10个不同端口。想办法让相同的房间用户连到同一个进程(比如客户端根据取模算法连同一个进程),这样进程模型更简单,代码更精简,运行更稳定,还可以无限扩展服务器。

找回密码和问题检索正在开发中。

  • 暂无评论