Moth 서비스 API
Moth 서버는 데이터 송수신과 미디어 서비스를 위한 서비스 API를 제공합니다. Moth를 활용하는 핵심 목적 중 하나가 이 API를 통해 데이터를 전송하고 수신하는 것입니다. 아래에서는 주요 구성과 옵션을 설명합니다.
서비스 API 소개
Moth 서비스 API는 라이브 방송, 영상 회의, 채팅 같은 미디어 서비스 구현에 직접 사용됩니다. 이 API를 통해 데이터를 송수신하고 다양한 미디어 서비스를 구성할 수 있습니다.
Protocol
ws | wss: Moth 서버 연결 프로토콜입니다. 웹소켓을 사용하며, 필요하면 보안 웹소켓인wss를 사용할 수 있습니다.
API 종류
Moth 서버의 서비스 API는 다음 두 가지 유형으로 나뉩니다.
| API | 메시지 형식 | 지원버전 |
|---|---|---|
/shot/ws/{pub,sub} | JSON 메시지 | v0.0.1 |
/pang/ws/{pub,sub,ctl,meb} | Text, Binary 메시지 | v.0.0.6 |
Pathname
Moth 서비스 API에서는 다양한 경로를 사용해 원하는 작업을 수행할 수 있습니다.
| API 종류 | 기능 | 지원버전 |
|---|---|---|
/pang/ws/pub | 주어진 채널(소스, 트랙)에서 데이터를 전송합니다. | v0.0.3 |
/pang/ws/sub | 주어진 채널(소스, 트랙)에서 데이터를 수신합니다. | v0.0.3 |
/pang/ws/ctl | 주어진 채널(소스, 트랙)에 대해 설정(예, 스트림키)을 포함하여 채널 내 자원의 사용 형태를 제어합니다. | v0.0.5 |
/pang/ws/meb | 주어진 채널(소스, 트랙)에서 데이터를 송수신하며 참여한 모든 세션으로 데이터를 방송합니다. | v0.0.6 |
Options for /pang API
서비스 API는 아래 옵션으로 동작을 세부 제어할 수 있습니다.
| 옵션 | 동작 설명 | 사용방식 |
|---|---|---|
channel=<xid> | <xid>의 채널을 사용합니다. | 필수 |
channel=instant & name=<string> | 채널 등록 없이 임시 instant 채널을 만들고 name으로 식별해 사용합니다. | 필수, xid 채널을 사용하지 않을 때 |
| source | 소스를 사용합니다. 지정하지 않으면 기본 소스인 base가 사용됩니다. source=[“base” | <string>] | 선택 |
| track | 트랙을 사용합니다. 지정하지 않으면 기본 트랙인 video가 사용됩니다. track=[“video” | <string>] | 선택 |
| mode | 버퍼 구성 방식입니다. single 또는 bundle을 선택합니다. mode=[“single” | ”bundle”] | 선택 |
| style | 데이터 수신 방식입니다. mono 또는 multi를 선택합니다. style=[“mono”|”multi”] | 선택 |
| wait | 수신 대기 방식입니다. force 옵션을 사용하면 송신 여부와 무관하게 대기합니다. wait=[”force”] | 선택 |
| timeout | 연결 후 데이터가 오지 않아도 <second> 동안 기다립니다. timeout=[30|<1~3600>] | 선택 |
| len | 버퍼 슬롯 수를 지정해 송신 데이터를 수신합니다. len=[5|<2~10>] | 선택 |
| total | 생성된 전체 버퍼 수를 지정합니다. total=[<2~10>] | 선택 |
| order | 생성된 버퍼 중 몇 번째 버퍼를 사용할지 지정합니다. order=[<0~9>] | total 사용시 필수 |
| codec | 원하는 코덱을 지정합니다. 현재는 JPEG, VP8, H264 간 변환을 지원합니다. codec=[jpeg|vp8|h264] | 선택 (sub) |
채널 사용 권한 인증
Moth 서버는 채널 사용 권한 인증을 위해 API 호출 시 Stream key를 요구합니다.
/pang/ws/pub?channel=<xid>&track=colink&mode=bundle&mime=video/h264&key=<string>
서비스 API를 사용하거나 채널을 설정할 때 key 매개변수에 인증키를 전달합니다.
예제
다음은 Moth 서버와 데이터를 송수신하는 예시입니다.
ws(s)://<server_addr:port>/pang/ws/pub?channel=btlb3pjpc98lsdbc0lj0