이벤트 소켓 (WebSocket)
GET
/api/v1/stations/{station_id}/events/socket
const url = 'https://dev.api.endueos.com/api/v1/stations/stn_01J9ZK3Q8M4XW7D2N5R6T0V1BC/events/socket?ticket=example&resource_id=res_01J9ZK3Q8M4XW7D2N5R6T0V1BC';const options = {method: 'GET', headers: {upgrade: 'websocket'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://dev.api.endueos.com/api/v1/stations/stn_01J9ZK3Q8M4XW7D2N5R6T0V1BC/events/socket?ticket=example&resource_id=res_01J9ZK3Q8M4XW7D2N5R6T0V1BC' \ --header 'upgrade: websocket'같은 이벤트를 WebSocket 으로. 텍스트 프레임 하나에 StationEvent 하나. 입장권으로만 인증한다.
닫힘 4401 = 입장권 무효, 4410 = 이어 받을 수 없음(REST 로 다시 읽고 새로 붙는다).
구독자가 정확히 {"type":"ping"} 을 보내면 {"type":"pong"} 이 온다 — 중간 장비의 idle timeout 을 넘기는 keepalive 다.
오래 열어 두는 구독(브라우저)은 SSE 보다 이것을 쓴다: 조용한 동안 서버가 자원을 쓰지 않는다.
가이드 — 이벤트와 웹훅
- None
파라미터
섹션 제목: “파라미터”경로 파라미터
섹션 제목: “경로 파라미터”station_id
필수
string
예시
stn_01J9ZK3Q8M4XW7D2N5R6T0V1BC쿼리 파라미터
섹션 제목: “쿼리 파라미터”ticket
필수
string
last_event_id
integer format: int64
types
string
resource_id
string
예시
res_01J9ZK3Q8M4XW7D2N5R6T0V1BC헤더 파라미터
섹션 제목: “헤더 파라미터”upgrade
필수
string
101
섹션 제목: “101”WebSocket 으로 바뀐다.
400
섹션 제목: “400”요청 형식이 틀렸다 — VALIDATION_ERROR(details.errors[]) 또는 BAD_REQUEST. 본문은 오류 봉투.
401
섹션 제목: “401”인증이 없거나 무효다 — UNAUTHORIZED. 본문은 오류 봉투.
426
섹션 제목: “426”Upgrade: websocket 이 없다. 본문은 오류 봉투.
503
섹션 제목: “503”의존 서비스에 닿지 못했다 — 잠시 뒤 다시. 본문은 오류 봉투.