比如: xx麻將 xx棋牌....
xx麻將:
1.新手房: 1-100個桌子,每桌4人
進階房: 1-100個桌子,每桌4人
xxx房
....
比如有20-30個
我能想到的:
新手房,進階房,.... 每個算一個gatewayWorker實例; 每個桌子算一個group ,然后joinGroup .... 各種操作;
新手房,進階房,.... 每個算一個group ; 每個桌子算一個uid,然后bindUid,... 也可以,就是后臺沒法弄了,比如給某人發(fā)送點什么東西, uid不唯一了;
還有別的成熟點的方法不
新手房,進階房,.... 每個算一個group ; 每個桌子算一個uid,然后bindUid,... 也可以,就是后臺沒法弄了,比如給某人發(fā)送點什么東西, uid不唯一了;
改成
新手房,進階房,.... 每個算一個group(roomid) ; 每個桌子算一個group(roomid-桌子id), 桌子上的用戶算一個group(roomid-桌子id-uid)
這樣子給某個房間發(fā)消息,給某個桌子發(fā)消息,給某個桌子的用戶發(fā)消息都可以了。
一個clientid是可以加入多個分組的。
當然給某個用戶發(fā)消息也可以用bindUid,sendToUid。但是如果用戶是登錄了兩個電腦,可能會出現(xiàn)兩個房間在線的情況,當給某個房間某個桌子某個用戶下消息時,用sendToUid就會導致兩個房間的用戶都收到消息。所以用分組會更靈活更好一些。