はじめに
今回は、今はやりのClubhouseで使われているリアルタイム通話サービスAgoraの紹介をします!
すごく簡単に導入できるので、興味を持った方は是非試してみてください!
YouTube動画
文字だけでなく、動画での解説もしています。
興味のある方はこちらも見ていただけると嬉しいです。
【YouTube動画】Clubhouse を支える音声サービス agora の紹介
Agoraとは
Agoraは、音声やビデオ通話を簡単に実装できるリアルタイム通話サービスです。
料金は、音声:1000分/$1 ビデオ:1000分/$4
です。
また、無料枠が10,000分あります。(YouTube動画内では無料枠が1000分となっていますが、無料枠は10,000分のようです。https://www.agora.io/en/pricing/)
類似サービスには、TwilioやSkywayがありますが、いずれもAgoraとほぼ同じことができます。
実装方法
Agoraは公式ライブラリが充実していて、JavaScriptをはじめ、複数の言語でとても簡単に実装できます。
以下はJavaScriptの例です。
import AgoraRTC from 'agora-rtc-sdk'
const client = AgoraRTC.createClient({ mode: 'rtc', code: 'vp8'})
client.init('<app id>')
client = join('<token>', '<channel>', null, (uid) => {
const localStream = AgoraRTC.createStream({ audio: true, video true })
localStream.init(() => {
localStream.play('me')
client.publish(localStream)
})
})
client.on('stream-added', (event) => {
// ユーザが追加された場合の処理を記載する
})
client.on('stream-removed', (event) => {
// ユーザが外れた場合の処理を記載する
})
なお、SSRができるJavaScriptフレームワーク(Next.jsなど)でAgoraRTCを使う場合、AgoraRTC内でwindowオブジェクトを使用しているため、
サーバサイド側の処理でAgoraRTCをインポートしないように注意してください。
他のリアルタイム通話サービスとの比較
他サービス(Twilio, Skywayなど)と比較したAgoraの特徴は以下の3つです。
特徴1. 実装が簡単
実装する際のコード量が少なく、実装が簡単です。
特徴2. ライブラリが充実
TwilioやSkywayはJavaScriptやAndroid、iOSのライブラリしかないのに比べAgoraは公式ライブラリが充実しており、例えばReactNative、Unity、Cocoa2D、Electron、Windows、MacOSなどもあります。
特徴3.ドキュメントがわかりやすい
JavaScriptを使ってみたところ、1時間で双方向通話が可能になるくらい、ドキュメントがわかりやすいです。
ただ、Next.jsなどを使うと詰まってしまうので、ReactやVueを使うのがオススメです。
まとめ
今回はClubhouseの通話関連サービスAgoraについて紹介しました。Clubhouseは音声だけですが、Agoraを使って音声に何かプラスしたクローンサービスを作ってみると面白いかもしれません。