本文章は Signaling SDK v2.x 向けの記事になります。
Agora Signaling SDK v2.x が 2023 年 12 月 22 日 に正式リリースとなりました。本 SDK 製品はもともと Signaling SDK と呼ばれており、Realtime Messaging(RTM)SDK に名称が改訂されました。そこから更に 2022 年末に Signaling SDK に名称が改訂され現在に至ります。
Signaling SDK とは
Agora Signaling は、リアルタイムのシステムに低遅延、高同時実行性のシグナリングおよび同期機能を提供します。 Agora Signaling SDK を使用すると、開発者は低遅延のイベント通知や、アプリケーション内のユーザ、デバイス、チャンネル属性に対するリアルタイムの変更を適用できます。さらに音声通話、ビデオ通話、インタラクティブなライブ配信の体験を向上させます。
ユースケース
- チャット機能、ハート送信、投げ銭
- ユーザの接続状態の取得
- 強制ミュート/アンミュートまたは画面共有の遠隔切り替え
- 着信呼び出し
- 座標データ配信
- クレーン操作
- 画面にクイズの表示
導入手順
Signaling 機能を有効化する
1.Agora Console にログイン
2.新しい Agora プロジェクトを作成する、またはプロジェクトリストから既存のプロジェクトを選択
3.Project Management ページから Signaling 機能を有効化したいプロジェクトを選択し、ペンアイコンをクリック
4.下部左側のメニューから ALL FEATURES > Signaling > Basic Information > Enable Primary Certificate する
5.Signaling ページにおける Basic Information から Data Center を指定
指定可能な地域:
EU:ヨーロッパ(Europe)
AP:アジアパシフィック(Asia-Pacific)
NA:北米(North America)
※ Signaling SDK v2.x を使用する際にメタデータのみがご指定の地域のデータセンターに保存される
6.左側のメニューから Subscriptions の Signaling をクリックし、ご利用のプランを選択
7.Signaling 機能の詳細設定はこちらをご参照ください
Download SDKs から Signaling SDK の最新版をダウンロードする
下記リンクから、画像で示したボタンを押下して SDK をダウンロードします。
https://docs.agora.io/en/sdks?platform=web
機能概要
メッセージチャンネル(Message channel)
非同期のパブ/サブ(Pub/Sub)メッセージ送信を可能にするリアルタイムメッセージングです。メッセージ送信者はチャンネルにメッセージを送信し、このメッセージが当該チャンネルをサブスクライブしている受信者へ送信されます。また、お客様のシステム設計に応じてデータの形式は文字列またはバイナリペイロードでの送信をサポートしています。
詳細な実装方法はこちらをご参照ください。
ストリームチャンネル(Stream channel)
ストリームチャンネルは、リアルタイムのデータパイプラインとして送信元から送信先へ遅延なしのデータ送信をサポートし、送信相手の間に途切れなく遅延のないシステムやプロセスでのデータの流れや処理の実現が可能です。また、お客様のシステム設計に応じてデータの形式は文字列またはバイナリペイロードでの送信をサポートしています。
詳細な実装方法はこちらをご参照ください。
メッセージチャンネルとストリームチャンネルは同等の機能を実現できます。ストリームチャンネルは遅延を最小限に必要があるシナリオに使用します。メッセージパケットのサイズを重視するシナリオでは、メッセージチャンネルを推奨します。また、メッセージチャンネルがより容易に実装できます。
Signaling v2.x においては、以下の機能も含まれています。
-
パブ/サブ(Pub/Sub)
非同期メッセージングを採用し、送信者と受信者間の即時通信を可能にします。パブ/サブモデルは、リアルタイムのメッセージングソリューションとして使用され、送信者がメッセージをチャンネルに送信して、受信者がサブスクライブしているチャンネルからこのメッセージを受信できます。 -
トピック(Topic)
トピックでデータストリームを効果的に管理し、ユーザ間のシームレスなコミュニケーションの実現ができます。トピックは、ストリームチャンネル内のデータフロー管理メカニズムとして機能します。これにより、ユーザはデータストリームのイベントを受信、分配、通知できるようになります。トピック機能はユーザがメッセージ送信者として登録し、チャンネル内でメッセージの送信またサブスクライブしている送信元からメッセージの受信をサポートしています。 -
ストレージ(Storage)
ストレージは、シグナリングソリューションにおいて安定性のあるメッセージ配信、メッセージロスやドロップを防ぐにあたって重要な役割を担っています。 -
イベントリスナーの削除(Removing Event Listeners)
removeEventListener メソッドを使用して、特定のイベントリスナーを削除できます。 -
インターバルモード(Interval Mode)
チャンネル内のオンラインユーザ数が指定したアナウンス最大値(Announce Max value)を超えると、該当チャンネルはインターバルモードになります。SDK はプレゼンス(presence)イベント通知を一定の間隔でトリガーし、ユーザの入退室、タイムアウト、および参加ステータスの変化に関する集計された情報をインターバル(interval)プロパティに渡します。 -
ロック(Locks)
データの競合を防ぐことに機能しています。データが決められた順番で処理されるようにメッセージの順番を管理します。
Geofencing
Signaling SDK においては、Area Code を指定していただくことで Agora のサーバを特定地域のみに接続することができます。
選択地域として下記から選択することが可能となります。
- グローバル(デフォルト)
- 中国本土
- 中国本土を除くアジア
- ヨーロッパ
- インド
- 日本
- 北アメリカ
詳細な実装方法はこちらをご参照ください。
参考資料
- Message channel クイックスタート
- Stream channel クイックスタート
- API リファレンス
- API の呼び出し制限、文字列サイズやエンコーディング等の利用制限
- トラブルシューティング(エラーコード一覧)
- Token を利用したワークフロー
- 移行ガイド(Signaling v1.x から Signaling v2.x へ)
- リリースノート