콘텐츠로 이동

동접 로그 API

Note

API로 제공하는 동시접속 로그의 집계 방식이 달라졌습니다. HIVE SDK v4.14.4부터는 HIVE SDK가 애널리틱스 서버 API로 전송함에 따라, 게임 스튜디오에서 동시접속 유저 수를 직접 호출해 집계하던 방법을 이용하지 않아도 됩니다. 이제 동접 로그 집계도 HIVE에 맡기세요.

동접 API의 기본사항 확인하기

API 통신 방식

  • 동접 API는 HTTP 프로토콜을 이용한 XML 데이터 통신을 제공합니다.
    • XML은 base64 encoding하여 전송해야 합니다.
    • POST 방식으로 XML 텍스트를 value parameter를 이용하여 전송하는 방식과 parameter 없이 body로 전송하는 방식을 제공합니다.
      • PHP cURL은 value parameter를 이용하여 XML 텍스트를 전송하는 방식이 적합합니다.
      • C++이나 wininet은 value parameter를 이용하지 않고 post data를 body로 XML 텍스트를 전송하는 방식이 적합합니다.
    • 결과는 base64 encoding된 XML 로 반환하며 결과값 확인 후 실패 시 재송신이 필요합니다.
    • 서비스 오픈 이전에는 테스트 서버로 연동 테스트를 진행하고 서비스 오픈 후에는 상용 서버로 전송합니다.
    • 서비스 중인 경우에도 테스트 서버 연동은 필수입니다.
    • 전송 간격은 매시 정각을 기준(한국 시간)으로 2분 단위로 API를 호출하여 전송합니다. (ex. 13:00, 13:02, 13:04 … )
    • 동접기준은 게임서버에 따라 다릅니다.
      • 웹서버는 최근 2분간 요청 유저의 유니크 수를 전송합니다.
      • 소켓서버는 서버에 접속되어 있는 유저 수를 전송합니다.

API 테스트

담당자

동접 전송하기

  • Request URL
상용 URL http://api-index.qpyou.cn/modules/gameuser/currentuser/
Sandbox URL http://sandbox-api-index.withhive.com/modules/gameuser/currentuser/
HTTP Method Post
Data Format XML
Parameter value
(post data를 body로 전송 시에는 사용하지 않음 ex. C++, wininet)
  • post data
필드명 설명
game 게임 구분이 가능한 key
담당자에게 등록요청 필수
ex) tinyfarm_KR, derbydays_SEA 와 같이 발급
server 서버별 접속자 전송시 서버 구분 정보
영문,숫자 조합으로 20자 까지 가능 (서버 구분이 없을 경우 0)
ex) \<server>0\ => 가능
\<server>1\
=> 가능
\<server>tinyfarm01\ => 가능
reqkey 동접 정보 고유키
동접 정보를 전송하는 서버에서 생성하는 고유키
MD5 인코딩 권장
reqkey 값으로 중복처리 보장
date 동시접속자 정보의 생성일시
‘년-월-일 시:분:초’의 형식으로, 초단위는 ‘00’ 으로 처리
한국 시간을 기준으로 하며, API 호출 시간 간격인 2분 단위로 처리
ex) 2016-06-23 16:24:00
user 동시접속자 수
  • Response
필드명 설명
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=
  • result Code
코드값 설명
100 동시접속자 정보 저장 성공
101 중복요청 존재로 미처리 (reqkey 중복)
200 Parameter error (입력데이터 없음)
201 Parameter error (필수정보 없음)
202 Parameter error (입력데이터 형식이 맞지 않음)
203 Base64 Encoding Error (base64 인코딩 되지 않음)
204 Xml 형식 맞지 않음
300 DB error
301 동접데이터 합산 수치가 동일한 경우
ex) server01 동접자 수 = 100, server02 동접자 수 = 0
server01 + server02 동접자 수가 동일할 때 발생
302 game key 없음