アプリ連携とウェブフック機能

V
shiguredo
Published in
4 min readSep 6, 2016

時雨堂が開発、販売している WebRTC SFU Sora は内部にデータを持つ仕組みが無い。さらにはデータベースへの接続機能も一切持っていない。

その代わりに Sora はウェブフック用にアプリケーションの URL を登録して貰い、そこへ認証の可否を問い合わせたり、Sora で起きたイベントを通知したりする仕組みを持っている。

ここでは 9/14 にリリースを予定している Sora 3.1 で改善した、ウェブフック機能を紹介していく。

認証ウェブフック

例えば認証、 Sora は 1:100 での映像配信を実現可能にするが、その映像を見ても良いかどうか認証をかけたい場合があるだろう。

この場合、Sora は認証ウェブフックに登録された URL に問い合わせ、戻り値で可否を判断する。

認証ウェブフック

ブラウザから送られてきた情報をバリデーションだけ行い、そのままアプリケーションに渡して、アプリケーションの判断を待つ。

この仕組みを使う事で Sora 自体に認証情報を一切持つ必要がなくなる。WebRTC という技術は様々なサービスの中に組み込んでいくもので、単独で利用する仕組みでは無いという考えから、特に認証機能はうまく外部へ委譲する仕組みを持っている。

イベントウェブフック

接続と切断

Sora は認証ウェブフック以外にイベント、つまり何かが Sora に発生したタイミングでのアプリケーションの通知機能を持っている。

通知で一番欲しいのはブラウザの Sora への接続と切断の通知だろう。認証が完了して、 WebRTC としての通信を開始したタイミングで Sora は登録された URL に対して通知を送る。

接続完了イベント通知

切断も同様で、ブラウザと Sora のシグナリングが切断された場合もアプリケーションに通知される。この情報を利用することでアプリケーションはユーザがどのくらい接続されているか、どの頻度で接続しているのかなどを管理することができる。

接続と切断はペアになっており、どちらか一方だけが来るという仕組みは無くなった。

授業などに利用するのであれば、現在接続している生徒一覧などを取得することも簡単になる。

接続時間

Sora では接続時間も管理している。クライアント毎に接続時間を管理しており、それぞれ接続が 1 分経過したタイミングでアプリケーションに通知する。

これを使う事で何分接続したかどうかといった記録もアプリケーション側で簡単に扱うことができる。接続時間を制限したり、残り接続数を表示したりすることも簡単に行える。

失敗

認証の失敗以外に、切断した場合、何か処理がおかしい場合は Sora はすぐにシグナリングの切断を行う。この場合のエラー処理をウェブフックに登録した URL に通知することが可能になる。

もちろん同様のエラーはシグナリングを経由してクライアントにも通知される。

これは管理画面などをアプリ側で作る場合にどのようなエラーが起こったのかを把握しやすくする仕組みだ。もちろんログから拾うこともできるが、ウェブフックで通知して貰う方がアプリに組み込みやすいと考えたからだ。

Sora ではとにかくアプリとの連携を意識して開発を行っている。アプリに WebRTC の仕組みを組み込みたいという方は検討して頂きたい。

Sora に興味を持った方は sora at shiguredo.jp まで連絡を。

--

--