日時: | 2022-12-10 |
---|---|
作: | 時雨堂 |
バージョン: | 2022.1 |
URL: | https://github.com/OpenAyame |
このプロジェクトに興味がある人はこの資料や GitHub リポジトリ に Star をつけてもらえると嬉しいです。
Contents
時雨堂 では WebRTC SFU Sora という製品を開発、販売しています。 ありがたいことに多くの会社で採用いただいています。
ただ、 WebRTC の P2P で利用できるという特徴を利用できていない残念でした。 ビジネスでは SFU を利用するのが現実ですが、もっと気軽に WebRTC の P2P 機能を利用できないか?と考えていました。
そこで WebRTC SFU をフルスクラッチで開発している会社が、 WebRTC の P2P 向けのシグナリングサーバを開発しオープンソースで公開し提供していくことで、 WebRTC の P2P を利用してもらえればと考え、このプロジェクトを立ち上げました。
URL: | https://github.com/OpenAyame/ayame |
---|
Ayame 仕様に準拠した WebRTC Signaling Server Ayame は WebRTC P2P 用のシグナリングサーバです。
ルーム数の作成は制限はありませんが、 1 ルームに参加できるユーザ数を 2 名、 つまり 1 対 1 に制限することで、クライアント、サーバ両方の実装をシンプルに保っています。
3 名以上の場合は P2P ではなく、 SFU や MCU を使うべきという方針です。
- シグナリング方式は独自
- ルーム数は無制限
- 1 ルームは最大 2 名に制限
- Unified Plan のみに対応
- Chrome / Firefox / Safari / Edge 最新版に対応
- メディアチャネルとデータチャネルの両方に対応
- ウェブフックで認証
- ウェブフックで払い出し
- Web SDK を提供
- Web サンプルを提供
詳細な仕様は以下から確認できます。
- Go
- 1.16 以降
- Ayame の仕様を公開する
- Go で書かれたリファレンス実装のシグナリングサーバを提供する
- サポートはしない
- 機能追加 PR は慎重に
- バグ修正のみ受け付ける
- オフラインのイベントには参加しない
- 機能を抑えて仕様をシンプルにする
- SDK は Web 版のみの対応にする
- [x] 認証機能
- [x] 認証サーバに問い合わせ
- [x] ウェブフック URL 払い出しによる二段階認証への対応
- [x] 承認機能
- [x] WebSocket 経由での払い出し
- [x] 認証サーバから払い出し
- [x] TURN サーバ用のコンフィグ払い出しへの対応
- [x] 切断ウェブフック
- [x] 切断時に指定したウェブフック URL に通知を飛ばす
- [x] SDK の提供
- [x] Web
- [x] メディアチャネル対応
- [x] データチャネル対応
- [x] SDK でのコーデック指定対応
- [x] サンプル
- [x] Web
- [x] sendrecv.html
- [x] sendonly.html
- [x] recvonly.html
- [x] datachannel.html
- [x] React
- [x] Web
- [x] OpenMomo プロジェクト で利用できる
WebRTC Signaling Server Ayame のソースコードライセンスは Apache License 2.0 として公開しています。
Ayame を無料で利用できる無保証のサービスを公開しています
URL: | Ayame Labo |
---|
- サインアップなしでも利用できます
- サインアップした場合以下の機能が利用できます
- TURN サーバが利用できます
- ルームへの接続が認証必須になります
- 認証ログが確認できます
詳細は以下をご確認ください。
アドバイスはしますが、サポートはしません
iOS や Android の SDK を用意する予定はありません。 シグナリングの仕様を公開しておりますので、対応してみてください。
Unity の SDK を用意する予定はありません。 シグナリングの仕様を公開しておりますので、対応してみてください。
ライブラリは以下をおすすめします。
Unity-Technologies/com.unity.webrtc: WebRTC package for Unity