這一篇單純是針對我們賭場傳送訊息大致的規劃。這個賭桌目前會使用socketio來推送訊息,因此我們需要一個方便明了的傳遞規則,讓我們在收發訊息知道這訊息的意義。
首先我有一個由socketio模擬出的request、response,當然這只是一個簡易版本,當如果有timeout等等延遲或通知在傳送中遺失、網路斷線等問題,是不會有錯誤的。因此往後的日子一定會有機會要修這個洞,但就目前探索階段我認為簡易版本夠用。
以下是我們大概的指令,那我會用代號來代表這些指令,字串輸入在收發真的很容易出錯,REQ、RES是我以上所說的,那至於NTF呢?下一部分會講到!
var cmd = {}
/*=================================================
REQ RES
=================================================*/
cmd.REQ_USER_LOGIN = '00000001'
cmd.RES_USER_LOGIN = '00000002'
cmd.REQ_USER_BETOUT = '00000003'
cmd.RES_USER_BETOUT = '00000004'
cmd.REQ_USER_BET_INFO = '00000005'
cmd.RES_USER_BET_INFO = '00000006'
cmd.REQ_TB_INFO = '00000007'
cmd.RES_TB_INFO = '00000008'
cmd.REQ_USER_INFO = '00000009'
cmd.RES_USER_INFO = '00000010'
cmd.REQ_USER_TB_SITDOWN = '00000010'
cmd.RES_USER_TB_SITDOWN = '00000011'
/*=================================================
NTF 100
=================================================*/
cmd.MSG_ERROR_NTF = '99999999'
cmd.MSG_TB_NTF = '00000100'
cmd.MSG_BT_NTF = '00000110'
cmd.MSG_USER_NTF = '00000120'
module.exports = cmd
NTF其實是指Notify的意思,意即這是一個通知,並不是因為你的REQ而返回的通知,這個NTF多半會出現在遊戲發生變化時,需要告知玩家發生甚麼事這樣,是屬於伺服器主動給你的資料。
那我分成四類。分別針對賭桌、下注回合、使用者、錯誤,這四種狀況來進行通知,那細項分類會待在第二參數,代號是cst。
因為這些通知其實都還沒新增完,所以還有遺漏很多,但擴充方便不用擔心。
經過觀察我們會發現這些cst其實就是對應上面NTF的,開頭兩段字就看的出來是針對桌、回合還是使用者的NTF,非常清楚。
var cst = {}
/*=================================================
TABLE CST
=================================================*/
cst.TB_NTF_COUNTDOWN_START = '0'
cst.TB_NTF_COUNTDOWN_STOP = '1'
cst.TB_NTF_COUNTDOWN_TIME = '2'
cst.TB_NTF_FANPI = '3'
cst.TB_NTF_PI_RESULT = '4'
cst.TB_NTF_STR_JOIN = '5'
cst.TB_NTF_STR_BETOUT = '6'
cst.TB_NTF_STR_QUIT = '7'
cst.TB_NTF_KICKOUT = '8'
/*=================================================
BET CST
=================================================*/
cst.BT_NTF_PAYOUT = '1'
cst.BT_NTF_PAYOUT_BALANCE = '2'
module.exports = cst
這一篇相當簡單的介紹了我們資料傳遞的接口怎麼街的,讓我們在處理複雜的資料的時候還是有一個依據,因為我們專案其實有使用Redux,加上Redux-thunk等等的概念,我想應該可以很輕易達到資料狀態的控制吧!繼續期待囉!