Moth 서비스 API
Moth 서버는 데이터 송수신 및 미디어 서비스에 관련된 기능을 제공하기 위해 다음과 같은 서비스 API를 지원합니다. 이 API를 사용하여 데이터를 전송하고 수신하는 것은 Moth 서버를 활용하는 주요 목적 중 하나입니다. 아래에서는 Moth 서버의 서비스 API에 대한 내용을 상세히 설명합니다.
서비스 API 소개
Moth 서버의 서비스 API는 라이브 방송, 영상 회의, 채팅 등과 같은 미디어 서비스의 직접적인 활용에 사용됩니다. 이 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에서는 다양한 경로(Pathname)를 사용하여 원하는 작업을 수행할 수 있습니다. 아래는 서비스 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 사용 시 다양한 옵션을 설정할 수 있으며, 이러한 옵션은 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 매개 변수를 사용하여 인증키를 설정합니다.
예제
서비스 API를 사용하여 Moth 서버와 데이터를 송수신하기 위해 다음 예시를 참고하세요.
ws(s)://<server_addr:port>/pang/ws/pub?channel=btlb3pjpc98lsdbc0lj0