sud.getZoneId
同步获取当前服务区域的 ID。小游戏开发者(CP)可根据该值,决定游戏客户端连接哪个区域的游戏服务端。
使用说明
zoneId 对应 OpenPaaS 开发者后台配置的游戏上线区域。在 SDK 加载的小游戏 JS 环境中,游戏客户端可调用本接口获取当前区域标识。
例如,CP 将游戏上线到中国大陆(cn)和东南亚(sea),并在两个区域分别部署游戏服务端:
- 返回
cn时,游戏客户端连接 CP 在中国大陆部署的服务端。 - 返回
sea时,游戏客户端连接 CP 在东南亚部署的服务端。
CP 需要根据实际部署情况维护“区域 ID → 游戏服务端地址”的映射。本接口只提供区域标识,不返回游戏服务端地址,也不会自动替 CP 切换连接地址。
参数
无。
返回值
string
当前服务区域的标识,取值说明如下:
| 返回值 | 区域 |
|---|---|
cn | 中国大陆 |
sea | 东南亚 |
eu | 欧洲 |
ru | 俄罗斯 |
当 SDK 未获取到区域信息时,返回空字符串 ""。如果返回空值或 CP 尚未配置对应服务端的区域值,游戏客户端应进行提示或按业务约定处理,不应直接使用未定义的服务端地址。后续新增区域时,CP 需同步维护相应的地址映射。
示例代码
以下示例假设游戏已在中国大陆和东南亚上线。域名仅作示意,请替换为 CP 实际部署的游戏服务端地址。
javascript
const gameServerUrls = new Map([
['cn', 'https://cn.game.example.com'],
['sea', 'https://sea.game.example.com'],
]);
const zoneId = sud.getZoneId();
const gameServerUrl = gameServerUrls.get(zoneId);
if (!gameServerUrl) {
// 区域为空或尚未配置对应服务端,不发起连接,由游戏提示或进行业务处理。
console.error('未配置当前区域的游戏服务端', zoneId);
} else {
// 使用 gameServerUrl 初始化游戏网络连接或作为游戏业务请求的目标地址。
console.log('当前区域及游戏服务端地址', zoneId, gameServerUrl);
}