シグナリング通知メタデータ¶
概要¶
signaling_notify_metadata
はクライアントの状態が変化したときに送られる、シグナリング通知に含まれるメタデータです。
シグナリング接続時、または認証ウェブフック成功の戻り値に signaling_notify_metadata
で JSON 値を指定することで利用できるようになります。
新しく参加した際に、すでにそのチャネルに参加しているクライアントの signaling_notify_metadata
の値がリストで共有されます。
注意¶
シグナリング通知メタデータの認証成功時払い出しによる上書き¶
接続時に指定したシグナリング通知メタデータは、認証成功時に signaling_notify_metadata
の払い出しによって上書きされます。
詳細は 接続時のシグナリング通知メタデータを認証払い出し時のシグナリング通知メタデータで上書き をご確認ください。
シグナリング通知メタデータ拡張¶
シグナリング通知メタデータ拡張機能 を有効にしている場合、
metadata
はシグナリング通知メタデータ拡張で利用されるため、
signaling_notify_metadata
で指定した値は metadata
には含まれません。
接続時に指定したシグナリング通知メタデータは
authn_metadata
として含まれます認証成功時に払い出したシグナリング通知メタデータは
authz_metadata
として含まれます
設定¶
sora.conf
で signaling_notify_metadata を false
を指定することで、
シグナリング通知時に metadata
や authn_metadata
や authz_metadata
を含まなくなります。
設定を行ったときの出力例は sora.conf の設定内容と connection.created 出力の例 をご確認ください。
シグナリング接続時での指定¶
"type": "connect"
接続時に signaling_notify_metadata
で JSON 値を指定できます。
{
"type": "connect",
"role": "sendrecv",
"channel_id": "sora",
"signaling_notify_metadata": {"authn": true}
}
シグナリング接続時に指定した値は、通知時に metadata
として通知されます。
また auth_metadata
としても通知されます。
"data"
にはすでにそのチャネルが参加しているクライアントの情報がリストで含まれます。
{
"type": "notify",
"event_type": "connection.created",
"authn_metadata": {"authn": true},
"metadata": {"authn": true}
"data": [
{
"connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
"authz_metadata": "xyz",
"metadata": "xyz"
},
{
"connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
"authn_metadata": 10,
"metadata": 10
}
]
}
シグナリング接続時に指定できるシグナリング通知メタデータのサイズ制限¶
重要
シグナリング接続時に指定できるシグナリング通知メタデータのサイズはのデフォルトは 64 KiB (65536 バイト) です。
メタデータのサイズはメタデータ拡張機能をエンコード済みの JSON 、つまり文字列としてサイズを計算します。
例えば {"a":"b"}
の場合は 9 バイトで、 {"a":"b","c":1200}
は 18 バイトです。
最大値を変更したい場合は sora.conf
の signaling_notify_authn_metadata_max_size を変更してください。
また、シグナリング通知メタデータを接続時に指定できなくする場合は signaling_notify_authn_metadata_max_size を 0
にしてください。
認証ウェブフックの戻り値での指定¶
認証ウェブフックでの戻り値は、シグナリング接続時に指定した値を上書きします。
{
"allowed": true,
"signaling_notify_metadata": "authz"
}
認証ウェブフックの戻り値で指定した値は、通知時に metadata
としても通知されます。
また authz_metadata
としても通知されます。
"data"
にはすでにそのチャネルが参加しているクライアントの情報がリストで含まれます。
{
"type": "notify",
"event_type": "connection.created",
"authn_metadata": "authz",
"metadata": "authz"
"data": [
{
"connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
"authz_metadata": "xyz",
"metadata": "xyz"
},
{
"connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
"authn_metadata": 10,
"metadata": 10
}
]
}
すでに参加しており、他のクライアントが参加してきた場合や離脱した場合は以下の通りになります。
{
"type": "notify",
"authz_metadata": {"username": "alice"},
"metadata": {"username": "alice"},
}
認証成功時払い出しのシグナリング通知メタデータのサイズ制限¶
制限はありません。
接続時のシグナリング通知メタデータを認証払い出し時のシグナリング通知メタデータで上書き¶
接続時に指定したシグナリング通知メタデータは、 認証成功時の払い出しのシグナリング通知メタデータで上書きされます。
接続時に指定したシグナリング通知メタデータ¶
接続時に指定したシグナリング通知メタデータを "authn"
と指定しています。
{
"type": "connect",
"role": "sendrecv",
"channel_id": "sora",
"signaling_notify_metadata": {"authn": true}
}
認証成功時に払い出したシグナリング通知メタデータ¶
認証成功時にシグナリング通知メタデータを "authz"
と払い出しています。
{
"allowed": true,
"signaling_notify_metadata": "authz"
}
クライアントへ送られるシグナリング通知メタデータ¶
認証成功時に払い出したシグナリング通知メタデータである "authz"
が metadata
として通知されます。
{
"type": "notify",
"event_type": "connection.created",
"authn_metadata": {"authn": true},
"authz_metadata": "authz",
"metadata": "authz",
"data": []
}