1、獲取游戲公告,也放在web服務中。公告一般是游戲登陸的時候向服務器獲取一次。把它放在web服務器中,與業(yè)務邏輯分離的好處是,當業(yè)務邏輯服務器維護或更新的時候,不影響用戶的登陸,和獲取公告,這樣用戶體驗會好一些。
2、創(chuàng)建用戶唯一的id,因為棋牌類游戲服務器是世界服,無分區(qū),所以用戶的id必須是全局唯一的??梢岳胷edis的incr方法,原子的遞增,如果不想被別人根據userid的遞增推算出有多少注冊用戶,遞增的梯度可以隨機,比如每次遞增的值從1到1024中隨機一個。
3、創(chuàng)建房間,當房間主創(chuàng)建房間時,房間的id需要在任何臺服務器上可以查詢到,所以創(chuàng)建房間成功后,房間id要存儲在共享內存redis中,每個房間id對應一個房間所在的ip地址或服務器id.這樣,當有用戶要進入房間,在查詢房間id時,可能判斷這個房間是否和自己登陸的游戲服務器相同。
4、查找加入房間。根據房間id查詢房間,查找到房間后,獲取房間所在的ip地址或服務器id,如果發(fā)現(xiàn)和自己所登陸的服務器一樣,直接可以加入房間。
5、玩家同屏玩家同屏是棋牌游戲中的一個重點,對于做過那些大型的arpg,或mmo游戲的程序員來說,這并不是什么難事。因為同屏就是服務器對客戶端的消息進行轉發(fā)。