Ccu api
Note
如何聚合并发用户(CCU)日志,因为API格式已更改。由于Hive SDK从Hive SDK v4.14.4开始将日志发送到分析服务器API,游戏工作室不再需要调用并发用户的数量。 只需让Hive SDK来处理。
CCU API 基础知识¶
API通信方法¶
- CCU API通过HTTP协议提供XML数据通信。
- 确保在编码为base64后发送XML。
- 发送方式有两种:使用值参数作为POST类型发送XML文本,以及将文本发送到主体而不使用任何参数。
- PHP cURL适合使用值参数发送XML文本的方法。
- C++或wininet适合将POST数据设置为主体而不使用值参数的发送XML文本的方法。
- 结果返回为编码为Base64的XML。如果检查结果失败,请确保重新发送。
- 在服务开放之前,测试测试服务器上的连接。服务启动后,交付到公共服务器。
- 测试服务器在服务期间应保持连接。
- 每小时每两分钟通过实现API发送XML(KST)。(例如,13:00,13:02,13:04……)
- CCU根据游戏服务器有不同的标准。
- Web服务器发送过去两分钟请求用户的唯一编号。
- Socket服务器发送连接到服务器的用户数量。
API 测试¶
- 打开以下网址以发送编码文本并检查结果。
PIC¶
- Com2uS: 平台部门 数据技术团队 闵在浩 (munjaeho@com2us.com)
- 参考: 平台部门2 数据技术团队 (DT@com2us.com)
- 请求发放CCU密钥: 解决方案架构团队 (PP_SA@com2us.com)
发送 CCU¶
- 请求 URL
常用 URL | http://api-index.qpyou.cn/modules/gameuser/currentuser/ |
---|---|
沙盒 URL | http://sandbox-api-index.withhive.com/modules/gameuser/currentuser/ |
HTTP 方法 | Post |
数据格式 | XML |
参数 | value (在将 post 数据发送到主体时不使用,例如 C++,wininet) |
- 发布数据
字段名称 | 描述 |
---|---|
game | 区分游戏的关键 确保请求注册到 PIC 例如:以 tinyfarm_KR、derbydays_SEA 发行 |
server | 通过服务器发送用户数据时的服务器标识符 最多可用20个字符,字母和数字的组合(如果不考虑服务器类型,则设置为0) 例如: \ \ \ |
reqkey | CCU 的唯一密钥 由发送 CCU 数据的服务器生成的 CCU 数据的唯一密钥 推荐编码为 MD5 reqkey 确保重复处理 |
date | 生成 CCU 数据的时间 格式:yyyy-mm-dd hhss(秒显示为 ‘00’) 基于 KST,每两分钟处理一次,API 实现的间隔 例如:2016-06-23 16:24:00 |
user | CCU 的数量 |
- 响应
字段名称 | 描述 |
---|---|
result | 结果代码。100=成功保存 查看更多 |
- 调用 (原始 XML → base64 编码 → URL 编码)
xml version="1.0" encoding="utf-8" ?
tinyfarm_KR
0
c4b40eb7d241654b74ec825976f42618
2016-06-23 16:23:00
1
curl -X
POST -d "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxnYW1ldXNlcj4KPGdhbWU+dGlueWZhcm1fS1I8L2dhbWU+CjxzZXJ2ZXI+MDwvc2VydmVyPgo8cmVxa2V5PmM0YjQwZWI3ZDI0MTY1NGI3NGVjODI1OTc2ZjQyNjE4PC9yZXFrZXk+CjxkYXRlPjIwMTYtMDYtMjMgMTY6MjM6MDA8L2RhdGU+Cjx1c2VyPjE8L3VzZXI+CjwvZ2FtZXVzZXI+Cg==" http://sandbox-api-index.withhive.com/modules/gameuser/currentuser/
- 请求
> POST /modules/gameuser/currentuser/ HTTP/1.1
> Host: sandbox-api-index.withhive.com
> User-Agent: curl/7.55.1
> Accept: */*
> Content-Length: 276
> Content-Type: application/x-www-form-urlencoded
>
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+CjxnYW1ldXNlcj4KPGdhbWU+dGlueWZhcm1fS1I8L2dhbWU+CjxzZXJ2ZXI+MDwvc2VydmVyPgo8cmVxa2V5PmM0YjQwZWI3ZDI0MTY1NGI3NGVjODI1OTc2ZjQyNjE4PC9yZXFrZXk+CjxkYXRlPjIwMTYtMDYtMjMgMTY6MjM6MDA8L2RhdGU+Cjx1c2VyPjE8L3VzZXI+CjwvZ2FtZXVzZXI+Cg==
- 响应
< HTTP/1.1 200 OK
< Server: nginx/1.8.0
< Date: Wed, 13 Nov 2019 08:54:39 GMT
< Content-Type: text/html; charset=utf-8
< Transfer-Encoding: chunked
< Connection: keep-alive
<
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiID8+PHJlc3VsdD4zMDI8L3Jlc3VsdD4=
结果代码¶
代码 | 描述 |
---|---|
100 | 成功保存 CCU 数据 |
101 | 由于重复请求未处理(重复的 reqkey) |
200 | 参数错误(没有输入数据) |
201 | 参数错误(缺少必需数据) |
202 | 参数错误(输入数据格式错误) |
203 | Base64 编码错误(未编码的 base64) |
204 | 与 Xml 格式不同 |
300 | 数据库错误 |
301 | CCU 数据与数据总和相同 例如,server01 CCU = 100,server02 CCU = 0 当 (server01 CCU)+(server02 CCU) 的结果与 server01 CCU 的数量相同时发生 |
302 | 没有游戏密钥 |