WebRTC SFU の API 連携

V
2 min readOct 21, 2015

--

WebRTC SFU 単独ではサービスが作れるわけではない。もちろんアプリが必要だ。そのアプリとの連携は必須になる。

ただ、 WebRTC SFU 側に判断機能をできるだけ入れたくない。つまり委譲機能を積極的に積んでいきたい。

アプリとの連携のために WebRTC SFU は Stream API と Action API そして Event API を提供する。

Stream API は簡単にいってしまえば WebSocket の口だ。つまりアプリは WebSocket を WebRTC SFU に対して接続しにいく。その後は WebRTC SFU で管理している状態が変化するタイミングでストリームデータが流れてくる。

Action API はアプリから WebRTC SFU に対して処理を依頼する。たとえば特定の接続ユーザを切断させたい場合に使う。

Event API は Stream API の同期版だ。アプリケーション側の判断をすぐに戻したい場合に使う。たとえば認証やパーミッションに使う。

この 3 つの API 機能を使うことで WebRTC SFU 自体は WebRTC に関係する状態の管理を行うだけに押さえられる。

アプリ側で好きなだけ判断ができるようになる。また Stream API から受け取った情報をクライアントへ WebSocket 経由でリアルタイムに配信するという二次配信も可能になる。

もう少し API の例を掘り下げてみる。配信者は配信するためのアクセストークンを付けて WebRTC SFU に WebSocket で接続へ行く。

そのタイミングで WebRTC SFU はアプリにたいしてアクセストークンを Event API を使って投げつけてくる。アプリはそのアクセストークンが正しいどうかを判断して、問題なければ 200 問題あれば 400 で返す。

WebRTC SFU は 200 が返ってくれば配信を開始する。400 が返ってきた場合は接続を拒否する。といった感じだ。

--

--