1.优化websocket接口,新增赔率参数
This commit is contained in:
@@ -235,17 +235,17 @@
|
||||
- `default_bet_chip_id`:int(含义:默认选中的筹码标识,来自 `game_config.default_bet_chip_id`,非法或指向无效档位时服务端回退为首个有效档)
|
||||
- `min_bet_per_number`:string(含义:单号码最小下注额,须 ≤ 所选筹码面额且受后台配置约束)
|
||||
- `max_bet_per_number`:string(含义:单号码最大下注额)
|
||||
- `streak_win_reward`:object(含义:连胜赔率配置,来自 `game_config.streak_win_reward`,与后台「连胜奖励」一致)
|
||||
- `rows`:array<object>(固定 1~10 档,按 `streak` 升序)
|
||||
- `streak`:int(连胜档位 1~10;下注时 `streak_at_bet=0` 适用档位 1,`streak_at_bet=n` 适用档位 `min(n+1, 10)`)
|
||||
- `odds_factor`:int(赔率乘数;中奖派彩 = 本笔 `total_amount` × `odds_factor`)
|
||||
- `is_jackpot`:bool(是否大奖档,触发 `jackpot.hit` 等流程)
|
||||
- `dictionary`:array<object>
|
||||
- `number`:int(1-36,含义:字花编号)
|
||||
- `name`:string(含义:字花名称)
|
||||
- `category`:string(含义:字花分类)
|
||||
- `icon`:string(含义:图标资源地址)
|
||||
- `user_snapshot`:object(`coin`、`current_streak`,含义:用户状态快照)
|
||||
- `user_snapshot`:object(含义:用户状态快照 + **当前玩家本局适用赔率**,不下发 1~10 全表)
|
||||
- `coin`:string(余额)
|
||||
- `current_streak`:int(当前连胜场数)
|
||||
- `streak_level`:int(若本局中奖将使用的连胜档位 1~10,由 `min(current_streak+1, 10)` 推导)
|
||||
- `odds_factor`:int(赔率乘数;中奖派彩 = 本笔 `total_amount` × `odds_factor`)
|
||||
- `is_jackpot`:bool(是否大奖档)
|
||||
|
||||
### 3.2 获取36字花字典(可缓存)
|
||||
- **POST** `/api/game/dictionaryList`
|
||||
@@ -750,9 +750,11 @@
|
||||
- **建议消息**:
|
||||
- 心跳:`{"action":"ping"}`
|
||||
- 服务端对心跳的当前实现回包:`{"event":"pong","server_time":"YYYY-mm-dd HH:ii:ss"}`(**注意**:此处 `server_time` 为**本地时间字符串**,与业务推送帧里 `server_time` 常用**秒级 int** 不一致,客户端解析时请分支处理)
|
||||
- 订阅状态流:`{"action":"subscribe","topics":["period.tick","period.opened"]}`
|
||||
- 订阅状态流:`{"action":"subscribe","topics":["period.tick"]}`
|
||||
- 订阅连胜/赔率(仅当前玩家):`{"action":"subscribe","topics":["user.streak","wallet.changed","bet.accepted"]}`
|
||||
- 订阅资金流:`{"action":"subscribe","topics":["bet.accepted","wallet.changed"]}`
|
||||
- 订阅托管流:`{"action":"subscribe","topics":["auto.spin.progress","wallet.changed"]}`
|
||||
- 移动端推荐合并订阅:`period.tick`、`user.streak`、`wallet.changed`、`bet.accepted`、`period.opened`
|
||||
|
||||
#### 7.1.1 消息协议字段定义(联调口径)
|
||||
|
||||
@@ -770,10 +772,22 @@
|
||||
- **仅建立连接不会自动下发全部业务消息**;客户端需要发送 `subscribe` 明确订阅主题。
|
||||
- 成功订阅后服务端返回:`{"event":"ws.subscribed","topics":[...]}`。
|
||||
- 若未订阅主题,通常只能收到握手首帧(`ws.connected`)和心跳回包(`pong`)。
|
||||
- **不下发** `streak_win_reward` 全表(1~10 档);赔率仅通过 `user.streak` / `wallet.changed` / `bet.accepted` 及 `lobbyInit.user_snapshot` 推送**当前登录玩家**本局适用字段。
|
||||
|
||||
#### 7.1.2A 连胜赔率与连胜场次(WebSocket)
|
||||
|
||||
- **`user.streak`**(开奖结算后推送;载荷为当前玩家本局适用赔率)
|
||||
- `data.user_id`:int
|
||||
- `data.current_streak`:int
|
||||
- `data.streak_level`:int
|
||||
- `data.odds_factor`:int
|
||||
- `data.is_jackpot`:bool
|
||||
- **`wallet.changed` / `bet.accepted`**:在原有字段上合并同上 **`current_streak`**、**`streak_level`**、**`odds_factor`**、**`is_jackpot`**;客户端按 `user_id` 过滤,仅处理本用户
|
||||
|
||||
#### 7.1.3 推送频率与触发规则(当前实现)
|
||||
|
||||
- `period.tick`:**每秒一次**(用于倒计时、状态同步)。
|
||||
- `period.tick`:**每秒一次**(用于倒计时、状态同步;**不含**赔率全表)。
|
||||
- `user.streak`:每期结算更新用户连胜后按用户推送(未中奖也会推送,`current_streak` 可能归零)。
|
||||
- `admin.live.snapshot`:**每秒一次**(后台实时对局页全量快照)。
|
||||
- `period.opened` / `period.payout` / `admin.live.opened`:按开奖流程阶段触发(事件触发型,非固定频率)。
|
||||
- `wallet.changed`:仅在余额发生变更时推送(如下注扣款、充值入账、派彩入账)。
|
||||
|
||||
Reference in New Issue
Block a user