一般性问题

最近更新时间:2019-01-09 10:30:58

接入 WNS 开发商服务器必须部署在腾讯云?

不是100%要求。

  1. 一般情况下,开发商接入 wns,是要求必须开发商服务器必须部署在腾讯云机房。
    如果开发商的服务器没有部署在腾讯云机房。那么终端请求到 WNS 接入服务器(这段链路 WNS 会做相应的优化)后,WNS 的接入服务器还需要通过运营商的公网将数据转发到开发商的服务器。而这段链路的质量,不在 WNS 的可控范围内,考虑到系统的稳定性,目前是要求必须部署在腾讯云。
  2. 只有2种特殊情况,目前是可以不用部署服务器在腾讯云。
    • 一些大的开发商在腾讯云和开发商机房直接建立专线,确保稳定性,专线事项可以加入技术咨询群确认。
    • 在 WNS 测试环境下,便于开发商测试,允许配置走外网到开发商测试环境。

WNS 是否支持 HTTPS?

目前 WNS 还不支持 HTTPS 协议。

不过 WNS 的通道,从终端到 WNS 接入服务器的通信,是采用了严格的加密机制来确认通信的安全。目前腾讯的App(包括 QZone、QQ 音乐、全民 K 歌等)接入 WNS 的系统,也是用的这套加密机制。

接入 WNS,需要进行哪些改造?

  • 客户端:网络通信模块改造成调用 WNS SDK,通信由 WNS 来处理
  • 服务端:如果是 HTTP 协议,服务端完全不用改造;如果是二进制协议,开发商需要进行一点改造,兼容 WNS 的协议格式。

客户端 SDK 的 URL、命令字和服务端路由配置有什么关系?

通讯路径是这样的:开发商 App > WNS SDK > WNS 服务端 > 开发商服务端

URL 是面向 HTTP 协议的;命令字是面向二进制协议的。

HTTP 协议:

  • HTTP 协议使用 URL 来标识不同的请求,使用接口 sendHTTPRequest 发送请求;
  • URL 要求完整的 URL 路径,是”域名/cgi 接口”的形式,代表一个具体的请求;
  • WNS 服务端路由配置:在 WNS 服务端配置域名对应的 IP 映射,WNS 服务端根据域名转发请求到开发商服务端。

二进制协议:

  • 二进制协议使用命令字标识不同的请求,使用接口 sendRequest 发送请求;
  • 命令字的格式由2个部分组成,是“模块名/接口名”的形式,如:“XXX/YYY”,其中 XXX 是模块名,YYY 是接口名,WNS 服务端路由配置会根据模块名 XXX 来转发请求;
  • WNS 服务端路由配置:在 WNS 服务端配置模块名对应的 IP 映射,WNS 服务端根据模块名转发请求到开发商服务端。

UID 和 WID 是做什么用的?

  • UID:用户 ID,标识一个用户,由开发商指定,WNS 系统不理解具体的意义。有帐户体系的开发商需要主动调用 bind 方法注册到 WNS 中,便于记录 LOG 分析和开发商主动发送 PUSH 使用。
  • WID:WNS 内部标记的设备 ID,标识一个设备,当开发商没有账号体系的时候,方便开发商可以给指定设备来发送信息或定位问题用。

业务是否可以指定接入点 IP?

接入 WNS 后,WNS 的服务端会对接入点测速数据统计分析,结合客户端网络环境,给出最优的接入点,提供最好的服务质量。同时具有容灾调度的功能,在某个接入点网络异常时,WNS 能自动监控并且调度到别的接入点。在正式运营环境下,开发商不需要也不能指定接入 IP。仅在测试环境下,开发商可以调用 setDebugIP 方法设置测试接入点的 IP 来调试和测试服务,这种情况下没有调度和容灾的功能。