비공개 사용자 채널

Markdown으로 보기

먼저 listenKey 만들기:

1POST /v1/private/user/listen-key

응답 예시:

1{
2 "code": 0,
3 "message": "success",
4 "data": {
5 "listenKey": "f57cb61ef604ce76be09e753a5dbdd8c",
6 "expireAt": 1777539918867
7 },
8 "requestId": "req-listen-key"
9}

listenKey 기본적으로 60분 동안 유효합니다. 30분마다 갱신하는 것이 권장됩니다.

갱신

1PUT /v1/private/user/listen-key
2Content-Type: application/json
1{ "listenKey": "f57cb61ef604ce76be09e753a5dbdd8c" }

닫습니다

1DELETE /v1/private/user/listen-key
2Content-Type: application/json
1{ "listenKey": "f57cb61ef604ce76be09e753a5dbdd8c" }

개인 WebSocket에 연결해

wss://ws.6mm.com/ws?listenKey=YOUR_LISTEN_KEY

호환 가능한 JWT 연결 방식:

wss://ws.6mm.com/ws?token=YOUR_ACCESS_TOKEN

인증이 성공하면 서버는 현재 사용자의 개인 채널에 자동으로 연결을 구독합니다. 수동 구독은 필요하지 않습니다.

성공적인 인증 확인:

1{ "event": "auth", "success": true, "data": "1188041528" }

일반적인 사적 행사

행사설명
ORDER_TRADE_UPDATE주문 상태 변경, 신규 주문, 수정, 거래 및 취소 등이 포함됩니다
ACCOUNT_UPDATE계좌 잔액 및 포지션 변동

프라이빗 푸시 메시지 래퍼:

1{
2 "topic": "user.5794",
3 "ts": 1771047000000,
4 "data": {
5 "eventType": "ORDER_TRADE_UPDATE"
6 }
7}

REST 쿼리 엔드포인트와 WebSocket 프라이비시 스트림은 별도의 스키마를 사용합니다. 클라이언트는 각 스키마를 독립적으로 파싱해야 하며, 필드 이름이 동일하다고 가정해서는 안 됩니다.

공통 차이점

도메인REST 필드WebSocket 필드
명령 현황statusorderStatus
동결 잔액frozenMarginfrozenBalance
마진 모드marginModemarginMode, 위치와 흐름에서 문자열로 돌아왔습니다

회복과 화해

  • 만료 전에 listenKey 을 갱신하고, 갱신이 실패할 경우 새 를 생성합니다.
  • 재연결, 재인증, 그리고 새 소켓을 새로운 이벤트 세션으로 처리합니다.
  • 파트너 잔액이나 주문 기록을 변경하기 전에 이벤트를 중복 해제합니다.
  • 이벤트가 누락되었을 경우, 쿼리 명령, 직책, 그리고 계정 상태 REST.
  • 따라가세요 연결과 심장박동 가이드 재시도 및 오래된 연결 처리를 위해.