디바이스 등록 및 연결 관리
디바이스 등록
디바이스 등록은 POST /devices로 시작합니다.
- Device가 디바이스 이름, secret key, Track 정보, 액션 정보를 서버에 전송합니다.
- 서버는 런타임 서버 설정의
device.secretKey와 요청값이 일치하는지 검증합니다. - 검증에 성공하면 서버가 디바이스 토큰을 생성하고 DB에 Device를 저장합니다.
- 서버는
DEVICE_REGISTERED이벤트를 발행하고, 클라이언트는 이를 수신해 목록을 갱신합니다. - 이후 디바이스 연결 관리 moth 채널에 연결하여 healthcheck 과정을 수행합니다.
디바이스 토큰의 의미
이 토큰은 이후 다음 용도로 사용됩니다.
- 디바이스 인증
- Moth Track 식별
- Task 수행 주체 확인
운영 환경에서는 등록 요청이 보호된 채널에서 수행되어야 하며, 등록용 secret은 일반 사용자 설정과 분리된 운영 비밀정보로 관리되어야 합니다.
디바이스 연결과 상태 감시
서버는 Moth의 디바이스 연결 관리 채널에 HEALTHCHECK를 주기적으로 발행합니다.
- 새로운 interval 주기가 시작되면, Server가 디바이스 관리 채널에
HEALTHCHECK메시지를 broadcast 합니다. - Device는 자신의 토큰을 포함한
HEARTBEAT로 응답합니다. - Server는 해당 주기 내에 응답한 디바이스들의 토큰을 기록합니다.
- 최초 heartbeat 또는 복구 heartbeat이면 Device를 connected로 전환하고 `DEVICE_CONNECTED 이벤트를 발행합니다.
health check 정책
서버는 /server-settings의 다음 정책을 사용합니다.
device.healthcheckIntervalSeconds: healthcheck 메시지를 Broadcast하는 주기입니다.device.healthcheckMaxConsecutiveMisses: 최대 몇 번의 healthcheck 미응답
heartbeat 누락 횟수가 임계치를 넘으면 디바이스는 disconnected로 전환됩니다.
디바이스 연결 해제
DEVICE_DISCONNECTED이벤트 발행- 진행 중이거나 대기 중인 최신 Task 중단 처리
- 필요 시 TGDM 자동 녹화 중지
- 시작된 Mantis 스트림 중지