###### tags: `API 文件`
API WebSocket 事件傳送格式
===
### 基本API格式
SendMessage([MessageType 事件ID], [Body 事件訊息])
enum MessageType {
MarketChanged = 0; // 賽事賠率變化資訊(目前為A水混水到產出M水流程用)
MatchInfo = 1; // 賽事資訊更新
GetSessionID = 2; // 取得SessionID用(建立完WebSocket連線,推送sessionID給前端)
MatchCreated = 3; // 賽事新增事件
MatchDelete = 4; // 賽事刪除事件
}
### WebSocket Service(svc):
svc.SendMarketChangedMsg(MarketChanged, [Body 事件訊息])
svc.SendMatchInfoMsg(MatchInfo, [Body 事件訊息])
svc.SendGetSessionIDMsg(GetSessionID, [Body 事件訊息])
svc.SendMatchCreatedMsg(MatchCreated, [Body 事件訊息])
svc.SendMatchDeleteMsg(MatchDelete, [Body 事件訊息])
### 事件傳送格式:
SendMarketChangedMsg(MarketChanged, [Body 事件訊息])
MarketChanged = 0; // 賽事賠率變化資訊(目前為A水混水到產出M水流程用)
```json=
[
Tournament:{
name: "",
matches: [
{
id:"",
status: {
sourcePause:"",
eventPause:"",
adjustPause:"",
isPause:"",
isClose:"",
}
market:[ //玩法,如1x2、AH、OU
{
marketId:"",
marketName:"",
sourcePause:"",
eventPause:"",
adjustPause:"",
isPause:"",
lines: [ //盤口,如大2.5,讓0/0.5
{
condition: "" //盤口的決定球數
status:"", //Open, Suspend, Closed
isSync:"", //是否要跟隨水份(是否要上下盤連動),default是true,要上下連動
outcomes:[ //投注項,如讓球玩法中的主、客隊,大小玩法中的大、小
{
id:"",
odd:"",
adjust:""
}
]
}
]
}
]
}
]
}
]
```
SendMatchInfoMsg(MatchInfo, [Body 事件訊息])
MatchInfo = 1; // 賽事資訊更新
```json=
[
Tournament:{
name: "",
matches: [
{
id:"",
home: {
name: "", //隊名
score: "", //分數
redCard: "", //紅牌數
},
away: {
name: "", //隊名
score: "", //分數
redCard: "", //紅牌數
},
status: {
phase: "1H",//"賽事節數變化,上半場、中場、下半場、延長賽上半場、延長賽中場、延長賽下半場、PK"
startTime: "2022-12-19T18:15:52Z", //該節賽事開賽時間
}
]
```
SendGetSessionIDMsg(GetSessionID, [Body 事件訊息])
GetSessionID = 2; // 取得SessionID用(建立完WebSocket連線,推送sessionID給前端)
```json=
[
SessionID: "1f36daee-8107-11ed-99ee-ce4447cc92e9"
]
```
SendMatchCreatedMsg(MatchCreated, [Body 事件訊息])
MatchCreated = 3; // 賽事新增事件
```json=
[
Tournament:{
name: "",
matches: [
{
id:"",
home: {
name: "", //隊名
score: "0", //分數
redCard: "0", //紅牌數
},
away: {
name: "", //隊名
score: "0", //分數
redCard: "0", //紅牌數
},
status: {
phase: "1H",//"賽事節數,上半場、中場、下半場、延長賽上半場、延長賽中場、延長賽下半場、PK"
startTime: "2022-12-19T18:15:52Z", //該節賽事開賽時間
injuryTime: "", // Whta is this for??
sourcePause:"",
eventPause:"",
adjustPause:"",
isPause:"",
isClose:"",
}
market:[ //玩法,如1x2、AH、OU
{
marketId:"",
marketName:"",
sourcePause:"",
eventPause:"",
adjustPause:"",
isPause:"",
lines: [ //盤口,如大2.5,讓0/0.5
{
condition:"" //盤口的決定球數
status:"", //Open, Suspend, Closed
isSync:"", //是否要跟隨水份(是否要上下盤連動),default是true,要上下連動
outcomes:[ //投注項,如讓球玩法中的主、客隊,大小玩法中的大、小
{
id:"",
odd:"",
adjust:""
}
]
}
]
}
]
}
]
}
]
```
SendMatchDeleteMsg(MatchDelete, [Body 事件訊息])
MatchDelete = 4; // 賽事刪除事件
```json=
[
matchID: "str" // match id
]
```