TGW接入说明

>>返回:域名接入

目录


1. 基于HTTP协议的应用可直接接入TGW

基于HTTP协议的应用直接完成域名绑定后即完成TGW域名接入。
完成TGW域名接入后,即可通过域名方式提供外网服务,支持电信\联通\移动三网。


域名绑定说明:
登录op.open.qq.com ,在管理中心选择1个应用进入后可看到“托管服务”tab,,点击进入后可看到“域名管理”按钮。
在域名管理的常规域名页面,可看到域名列表,在该页面完成服务器与域名的绑定(详细操作说明见:常规域名管理#4. 域名绑定和解绑)。
CEE_V2_2.png
domain_management_4.png

2. 基于私有协议的应用需进行改造后接入TGW

基于私有协议的应用需要进行如下改造:

2.1 改造客户端程序,使建立连接后的第一个包带上TGW包头

1. TGW包头格式为如下:
(下面示例可直接复制,然后将域名修改为你自己的域名,端口为申请接入TGW时填写的端口,目前可接入的端口为:80、443、8000-8010。)
2012年6月6日起,将原有添加HTTP包头的方案改为添加TGW包头的方案,以解决ESET防火墙阻挡用户的伪HTTP数据包的问题。更新的方案不影响已经接入的应用):

tgw_l7_forward\r\nHost:app12345.qzoneapp.com:80\r\n\r\n

需特别注意:
(1)包头长度不能超过4K;
(2)使用\r\n来进行回车换行。注意\r\n是两个转义符(\r的十六进制为0d,\n的十六进制为0a),而不要把\r\n当成四个字母'\' 'r' '\' 'n' 。
(3)经常有应用出现发包给TGW但是TGW无回包的情况(常见错误详见:TGW相关常见问题),一般都是由于包头格式不符合上述规定引起的。


2. 如果是采用自定义协议通过socket同客户端通信的flash应用,也只需要添加TGW包头即可。
TGW收到843的policy请求,会主动回复通用的crossdomain策略配置文件。正确的flash server请求是:<policy-file-request/>\0

(1)843 flash端口已经由TGW代理了,无需对843端口进行改造。
(2)843端口被TGW专门用于flash policy策略配置文件的下载,发送到843端口的其他请求均不会被处理。
(3)目前暂时不支持自定义策略配置文件,用户自定义的策略不会被访问到。
(4)标准的flash server的请求:<policy-file-request/>\0,这里需要以\0结尾,一共23个字节。这里的\0是指一个accii码为0的符号,只占用一个字节。

获取策略配置文件的测试命令如下:

perl -e 'printf "<policy-file-request/>%c",0' | netcat -i 1 101.226.62.63 843

:上述命令中的“101.226.62.63”为TGW域名对应的IP,请开发者替换为实际TGW域名对应的IP。



2.2 改造服务端程序,使服务器能解析TGW包头

1. 改造服务端程序,使服务器能解析TGW包头,就可以接入TGW了。
2. 服务器程序侦听端口须绑定在0.0.0.0上,不能绑定在指定网卡上。
:服务器程序侦听端口与申请接入TGW时填写的端口一致,目前可接入的端口为:80、443、8000-8010。在申请TGW域名对应的端口成功后,才能接入成功。

2.3 连接建立后的数据格式要求

连接建立后,第三方的所有网络数据交换都不做格式要求。


2.4 绑定域名

完成上述改造后,第三方应用登录管理中心进行域名绑定,即完成TGW域名接入。
完成TGW域名接入后,后即支持电信\联通\移动三网,可通过域名方式提供外网服务。

域名绑定说明:
登录op.open.qq.com ,在管理中心选择1个应用进入后可看到“托管服务”tab,,点击进入后可看到“域名管理”按钮。
在域名管理的常规域名页面,可看到域名列表,在该页面完成服务器与域名的绑定(详细操作说明见:常规域名管理#4. 域名绑定和解绑)。
CEE_V2_2.png
domain_management_4.png

3. Demo:应用接入TGW前后的请求发送和接受流程

1. 某个第三方应用在完成TGW域名接入前,其请求的发送和接收流程如下:
(1)应用客户端发起TCP连接到服务器 8000 端口,完成三次握手后,保持长连接;
(2)应用客户端一直用这个长连接与服务器通信,直到玩家退出应用。

2. 该应用进行TGW域名接入时需要进行改造,处理方式如下:
改造客户端,使建立连接后客户端发的第一个http包头包含域名端口信息,包的其他内容自行填充。
改造服务端,使服务端能解析这第一个包的http头,并且忽略包的内容。真正的数据通信/请求交互,放在第二个包开始。

3. 该应用完成TGW域名接入后,即通过TGW做请求转发,其请求的发送和接收流程变为如下:
(1)应用客户端发起TCP连接到 TGW的 8000 端口,完成三次握手后,TCP连接建立;
(2)应用客户端通过这个TCP连接发送一个 HTTP请求给TGW;
(3)TGW识别出来这个HTTP请求,并与内网的应用服务器建立TCP连接,同时将这个HTTP请求转发给应用服务器,因此需要应用服务器能处理这个HTTP请求,以免当做错误协议格式;
(4)至此,应用客户端已经通过TGW与应用服务器成功建立了连接;
(5)应用客户端一直用这个与TGW之间的TCP长连接与应用服务器通信,直到用户退出应用。

以上信息是否解决您的问题?

Copyright © 1998 - 2017 Tencent. All Rights Reserved.

腾讯公司 版权所有

有问必答 返回顶部