WebRTC Signaling Server Ayame 19.02 をリリースしました

V
shiguredo
Published in
4 min readFeb 21, 2019

公開してから React や Vue のサンプルを追加して、さらにルーム機能を追加しました。そして Node.js (TypeScript) から Go に開発言語を変更して、本日 19.02 をリリースしました。

最低限の機能は実装してありますし、サンプルもありますので WebRTC を P2P で動かすという目的は達成できました。2019 年 2 月頭に OpenAyame というプロジェクトを開始して、 2 月中にリリースができたのは本当に嬉しいです。

OpenAyame プロジェクトについて

OpenAyame プロジェクトは Ayame という WebRTC Signaling Server を OSS で公開し、継続してメンテナンスをしていくというプロジェクトです。Ayame は WebRTC を学びたい人、使ってみたい人、P2P を利用してみたい人向けにベンダーロックしないシグナリングサーバを公開し、より多くの人に WebRTC を広めていきたいという考えから始まっています。

機能を追加するのではなく、 WebRTC に関連した技術のみを学べ、利用できるシグナリングサーバを公開していきます。

Ayame について

Ayame は OpenAyame プロジェクトとして公開している WebRTC Signaling Server です。開発言語は Go で書かれています。

いくつかの制限を加えることによってコードをとてもシンプルに保っています。

Ayame はとても 1000 ルームくらいは余裕で処理できると思います。認証も簡単に追加できますので、是非 fork して使ってみてください。

また、Ayame の特徴として Vue や React のサンプルを提供しています。これは ES6 で書かれたのと同じ動きをするようになっています。これらサンプルを直接使うのではなく、 Vue や React で WebRTC を使うときの参考にしてもらえればと思います。今後は iOS や Android のサンプルも用意していく予定です。

Ayame はとてもシンプルに書かれてはいるため、驚かれるかもしれません。ただ WebRTC は 1 対 1 に限るのであればもともとシンプルに実現できる技術です。

Ayame の今後について

まず、一段落ということで 19.02 をリリースしました。今後はまずは TURN サーバ対応をしていく予定です。TURN サーバには coturn を利用します。また TURN サーバとの連携には Redis を利用していきます。

そのためシグナリングサーバ 1 台から、少し複雑になってしまうためあくまで TURN サーバはオプションとして、設定すれば使えるという形を撮ろうと考えています。

また、シグナリングサーバ自体の冗長化も Redis を利用して行えるように考えています。スケールアップは Go のマルチコア対応を利用し、スケールアウトは Redis を利用してできるようにしていきます。

Ayame はすでに、本番でも利用可能な WebRTC Signaling Server ですが、今後はより「繋がる」「運用しやすい」を目指して行きます。

共同開発者について

Ayame は kdxu が開発を担当してくれました。彼女の素晴らしい吸収力と開発力により 1 ヶ月かからずリリースまで盛ってこれました。本当に感謝していますし、凄いす。

まとめ

Ayame はベンダーロックが多いシグナリングサーバの世界でなんとかベンダーロックを行わないものを提供したいと考え公開しました。

WebRTC SFU というプロダクトを作っている会社としては、利益的なメリットは一切ありません。これは WebRTC プロジェクトへの貢献の一つと考えています。

今後も継続的なアップデート、さらにメンテナンスを行っていきますので、ぜひ使ってみてください。

--

--