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