RPC 機能¶
警告
この機能は 実験的機能 のため、正式版では仕様が変更される可能性があります
概要¶
Sora ではデータチャネルシグナリング利用時に JSON-RPC 2.0 を利用して Sora の一部 API をクライアントから呼び出すことができます。
仕様¶
JSON-RPC 2.0 の仕様に準拠しています
methodには API 利用時のx-sora-targetヘッダーに指定する値を指定しますparamsには API 利用時の JSON を指定しますchannel_idとconnection_idは省略することができます
idを付けないことでレスポンスを返さないNotificationとして利用できますtimeoutはミリ秒単位で指定します
シーケンス図¶
sequenceDiagram
participant C1 as Client1
participant C2 as Client2
participant S as Sora
note over C1,S: C1, C2 共にWebRTC 確立済み
C1 ->> S: JSON-RPC 2.0 Request<br>PutSignalingNotifyMetadataItem<br>push: true<br>over DataChannel
note over S: シグナリング通知メタデータ拡張に項目を追加
S ->> C1: JSON-RPC 2.0 Success Reponse<br>over DataChannel
note over S: シグナリング通知メタデータ拡張によるプッシュ通知が発生
S ->> C1: type: push<br>over DataChannel
S ->> C2: type: push<br>over DataChannel
パーミッション¶
この機能を利用する場合は認証時の払い出しで API のパーミッションを付与する必要があります。
{
"allowed": True,
"rpc_permissions": [
"Sora_20201124.PutSignalingNotifyMetadata",
"Sora_20201124.PutSignalingNotifyMetadataItem",
]
}