iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 20
1
Modern Web

三十天路邊賭場上線了!系列 第 20

DAY20 賭場訊息遞送規劃

  • 分享至 

  • xImage
  •  

前言

這一篇單純是針對我們賭場傳送訊息大致的規劃。這個賭桌目前會使用socketio來推送訊息,因此我們需要一個方便明了的傳遞規則,讓我們在收發訊息知道這訊息的意義。

規劃

首先我有一個由socketio模擬出的request、response,當然這只是一個簡易版本,當如果有timeout等等延遲或通知在傳送中遺失、網路斷線等問題,是不會有錯誤的。因此往後的日子一定會有機會要修這個洞,但就目前探索階段我認為簡易版本夠用。

CMD

以下是我們大概的指令,那我會用代號來代表這些指令,字串輸入在收發真的很容易出錯,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

NTF其實是指Notify的意思,意即這是一個通知,並不是因為你的REQ而返回的通知,這個NTF多半會出現在遊戲發生變化時,需要告知玩家發生甚麼事這樣,是屬於伺服器主動給你的資料。
那我分成四類。分別針對賭桌、下注回合、使用者、錯誤,這四種狀況來進行通知,那細項分類會待在第二參數,代號是cst。

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等等的概念,我想應該可以很輕易達到資料狀態的控制吧!繼續期待囉!

連結

Github


上一篇
DAY 19 牌局結果、結果提示
下一篇
DAY21 伺服器端資料串接
系列文
三十天路邊賭場上線了!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言