DataChannel 経由での RPC 機能¶
警告
この機能は 実験的機能 のため、正式版では仕様が変更される可能性があります
概要¶
Sora ではデータチャネルシグナリング利用時に JSON-RPC 2.0 を利用して Sora の一部 API をクライアントから呼び出すことができます。
JSON-RPC 2.0 仕様¶
JSON-RPC 2.0 の仕様に準拠しています
methodには API とは異なる形式で指定する必要がります2025.2.0/RequestSimulcastRidのように{導入された Sora のバージョン}/{API 名}の形式で指定します
paramsには API 利用時の JSON を指定しますchannel_idとconnection_idは省略することができます
idを付けないことでレスポンスを返さないNotificationとして利用できますこれは Sora 側がレスポンスを返さないことを意味します
メソッド一覧¶
注釈
method は {導入された Sora のバージョン}/{API 名} という形式になります。
2025.2.0/RequestSimulcastRid¶
{
"jsonrpc": "2.0",
"method": "2025.2.0/RequestSimulcastRid",
"params": {
"rid": "r1"
},
"id": 1
}
2025.2.0/PutSignalingNotifyMetadata¶
PutSignalingNotifyMetadata API
{
"jsonrpc": "2.0",
"method": "2025.2.0/PutSignalingNotifyMetadata",
"params": {
"push": true,
"metadata": {
"example_key_1": "example_value_1",
"example_key_2": "example_value_2"
}
},
"id": 1
}
2025.2.0/PutSignalingNotifyMetadataItem¶
PutSignalingNotifyMetadataItem API
{
"jsonrpc": "2.0",
"method": "2025.2.0/PutSignalingNotifyMetadataItem",
"params": {
"push": true,
"key": "example_key",
"value": "example_value"
},
"id": 1
}
利用できる RPC の指定¶
この機能を利用する場合は認証時の払い出しで RPC で利用できるメソッド一覧を指定する必要があります。
{
"allowed": True,
"rpc_methods": [
"2025.2.0/RequestSimulcastRid",
]
}
type: offer¶
利用できる RPC メソッド一覧は "type": "offer" のシグナリングメッセージに rpc_methods でクライアントは確認することができます。
{
"type": "offer",
"rpc_methods": [
"2025.2.0/RequestSimulcastRid",
]
}
シーケンス図¶
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