一、游戏接入模式
Gamefans 游戏侧有两种接入模式,即游戏自带大厅模式和业务侧组局模式,两种模式下的业务流程和需要调用的接口有所不同。
1.1 游戏自带大厅模式
该模式下的时序图如下。在该模式下,游戏会主动维护座位状态,玩家加入或退出游戏时,游戏会主动调用服务端相关接口;业务侧也可以通过相关接口进行玩家上下座、添加机器人等操作。
1.2 业务侧组局模式
该模式下,需要业务侧维护游戏玩家状态,同时在需要开始游戏时通过调用游戏服务相关接口来告知游戏玩家列表并开始游戏。该模式接入后的时序图如下。
二、客户端接入
游戏包为静态文 件,以网页方式部署,通过URL加载即可。游戏与业务侧客户端的交互通过JS Bridge完成。通过游戏加载URL中的相关参数,可以指定游戏的相关行为;通过 JS Bridge 相关方法和事件,可以完成游戏和业务侧客户端的相关交互,游戏预定义了一部分常用的事件和方法,同时可以根据业务侧需求,添加对应事件或方法。
2.1 客户端部署
交付的游戏客户端为静态文件,需要以网页的部署形式,部署到对应服务器、对象存储等位置,并可以按照需求开启 CDN 等功能。
2.2 客户端加载
游戏部署完成后,可以通过 URL 方式进行加载。游戏加载需要以下参数:
| 参数 | 类型 | 说明 |
|---|---|---|
| app_id | string | APP ID |
| room_id | string | 房间 ID |
| token | string | 用户标识 |
| language | string | 游戏语言代码 |
| extra | JSON | 其他信息 |
其中 extra 字段包含以下参数:
| 字段 | 类型 | 是否必须 | 默认值 | 说明 |
|---|---|---|---|---|
| http_url | string | 是 | -- | 游戏调用 http 接口 url |
| ws_url | string | 是 | -- | 游戏调用的 websocket 接口 url |
| top | int | 否 | 0 | 安全区上边界 |
| bottom | int | 否 | 0 | 安全区下边界 |
| left | int | 否 | 0 | 安全区左边界 |
| right | int | 否 | 0 | 安全区右边界 |
| width | int | 否 | -- | 游戏宽度 |
| height | int | 否 | -- | 游戏高度 |
| auto_scale | int | 否 | 0 | 是否自动缩放,0关闭自动缩放,1开启自动缩放 |
以如下参数值为例:
| 参数 | 值 |
|---|---|
| app_id | 5147182126419264 |
| room_id | 89945 |
| token | HWUEv2uXigqYEG0t |
| language | zh-CN |
| extra | {"http_url":"https://example.com/api","ws_url":"wss://example.com/websocket-endpoint","top":100,"bottom":300,"auto_scale":0} |
则最终构建游戏 URL 如下所示:
plain