一般棋牌类游戏你们是怎么做的

ketle

比如: xx麻将 xx棋牌....
xx麻将:
1.新手房: 1-100个桌子,每桌4人

进阶房: 1-100个桌子,每桌4人
xxx房
....
比如有20-30个

我能想到的:

新手房,进阶房,.... 每个算一个gatewayWorker实例; 每个桌子算一个group ,然后joinGroup .... 各种操作;
新手房,进阶房,.... 每个算一个group ; 每个桌子算一个uid,然后bindUid,... 也可以,就是后台没法弄了,比如给某人发送点什么东西, uid不唯一了;

还有别的成熟点的方法不

5135 5 0
5个回答

ketle

找到http://wenda.workerman.net/?/question/605 这个问题 , 居然又看到我很早以前的提问 哈哈

  • 暂无评论
walkor 打赏

新手房,进阶房,.... 每个算一个group ; 每个桌子算一个uid,然后bindUid,... 也可以,就是后台没法弄了,比如给某人发送点什么东西, uid不唯一了;

改成
新手房,进阶房,.... 每个算一个group(roomid) ; 每个桌子算一个group(roomid-桌子id), 桌子上的用户算一个group(roomid-桌子id-uid)
这样子给某个房间发消息,给某个桌子发消息,给某个桌子的用户发消息都可以了。

一个clientid是可以加入多个分组的。

当然给某个用户发消息也可以用bindUid,sendToUid。但是如果用户是登录了两个电脑,可能会出现两个房间在线的情况,当给某个房间某个桌子某个用户下消息时,用sendToUid就会导致两个房间的用户都收到消息。所以用分组会更灵活更好一些。

  • 暂无评论
ketle

谢谢 w大就是回复快

  • 暂无评论
ketle

那如果 开4个进程 这个roomid得存数据库 redis之类的吧 ,不然不能共用 ,得找个中间件来共用

  • 暂无评论
ketle

好像写死也可以 但进程间如果有通讯是得用其他中间件来搞

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