Skip to content

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);
}