我現(xiàn)要用gatewayworker開發(fā)一個(gè)棋牌游戲的服務(wù)服務(wù)器
那現(xiàn)在有一個(gè)問題就是
如果 BusinessWorker 的進(jìn)程設(shè)置大于1
那么連接上來的兩個(gè)玩家怎么能保證進(jìn)入到相同的房間
以我現(xiàn)在的理解
1 設(shè)置 BusinessWorker 進(jìn)程數(shù) 為1
2 設(shè)置 設(shè)置Gateway到BusinessWorker路由規(guī)則
請(qǐng)問還有其它的方法嗎
PS
強(qiáng)烈建議網(wǎng)站加一個(gè)找回密碼功能,還有就是問題檢索的功能
我的理解是你要把同一個(gè)房間的用戶放在一個(gè)進(jìn)程里,這樣好在內(nèi)存中共享一些變量。
最好的方案是 設(shè)置Gateway到BusinessWorker路由,比如每個(gè)請(qǐng)求都帶一個(gè)房間號(hào),然后gateway根據(jù)房間號(hào)將請(qǐng)求路由到固定的進(jìn)程。
不過最好不要用內(nèi)存來存儲(chǔ)重要數(shù)據(jù),數(shù)據(jù)存在存儲(chǔ)里會(huì)好一些,避免業(yè)務(wù)bug導(dǎo)致進(jìn)程退出數(shù)據(jù)就沒了,或者線上要升級(jí)代碼,reload后導(dǎo)致數(shù)據(jù)丟失。如果數(shù)據(jù)都用存儲(chǔ)存起來,也就不用考慮路由到同一個(gè)進(jìn)程的問題了。
如果是我做棋牌的話,我可能直接用workerman來做,比如開10個(gè)進(jìn)程,分別監(jiān)聽10個(gè)不同端口。想辦法讓相同的房間用戶連到同一個(gè)進(jìn)程(比如客戶端根據(jù)取模算法連同一個(gè)進(jìn)程),這樣進(jìn)程模型更簡單,代碼更精簡,運(yùn)行更穩(wěn)定,還可以無限擴(kuò)展服務(wù)器。
找回密碼和問題檢索正在開發(fā)中。