シグナリング通知メタデータ¶
シグナリング通知メタデータの破壊的変更について¶
metadata_list -> data¶
2021 年 6 月リリース予定の Sora にてシグナリング通知メタデータの metadata_list
を data
に変更します。
この機能はシグナリング通知メタデータ拡張を利用するための signaling_notify_metadata_ext = true
にすることで確認可能です。
シグナリング通知メタデータ拡張については シグナリング通知メタデータ をご確認ください。
概要¶
signaling_notify_metadata
はユーザが参加や離脱したときに送られるシグナリング通知に含まれるメタデータです。
シグナリング接続時、または認証ウェブフック成功の戻り値に signaling_notify_metadata
で JSON を指定することで利用可能になります。
新しく参加したときにはすでに参加しているクライアントの signaling_notify_metadata
の値がリストで送られます。
sora.conf の指定¶
sora.conf
で signaling_notify_metadata = false
を指定することで、
シグナリング通知時に metadata
や metadata_list
を含まなくなります。
シグナリング接続時での指定¶
type: connect
接続時に signaling_notify_metadata
にて JSON 型の好きな値を指定可能です。
{
"type": "connect",
"role": "sendonly",
"channel_id": "bacon",
"signaling_notify_metadata": {"spam": "egg"}
}
シグナリング接続時に指定した値は通知時に authn_metadata
としても通知されます。
{
"type": "notify",
"event_type": "connection.created",
"authn_metadata": {"spam": "egg"},
"metadata": {"spam": "egg"},
"metadata_list": [
{
"connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
"client_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
"authn_metadata": {"spam": "egg"},
"metadata": {"spam": "egg"}
},
{
"connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
"client_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
"authn_metadata": 10,
"metadata": 10
}
]
}
シグナリング接続時に指定できるシグナリング通知メタデータのサイズ制限¶
重要
シグナリング接続時に指定できるシグナリング通知メタデータのサイズは最大 64 KiB (65536 バイト) です。
メタデータのサイズはメタデータ拡張機能をエンコード済みの JSON 、つまり文字列としてサイズを計算します。
例えば {"a":"b"}
の場合は 9 バイトで、 {"a":"b","c":1200}
は 18 バイトです。
認証ウェブフックの戻り値での指定¶
{
"allowed": true,
"signaling_notify_metadata": 10
}
認証ウェブフックの戻り値で指定した値は通知時に authz_metadata
としても通知されます。
{
"type": "notify",
"event_type": "connection.created",
"authn_metadata": {"spam": "egg"},
"authz_metadata": "bacon",
"metadata": "bacon",
"metadata_list": [
{
"authz_metadata": {"spam": "egg"},
"client_id": "🐗🐗🐗🐗",
"connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
"metadata": {"spam": "egg"}
},
{
"authz_metadata": 10,
"client_id": "🐹🐹🐹🐹",
"connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
"metadata": 10
}
]
}
signaling_notify_client_id = true
signaling_notify_connection_id = true
{
"type": "notify",
"event_type": "connection.created",
"authn_metadata": {"spam": "egg"},
"authz_metadata": "bacon",
"metadata": "bacon",
"metadata_list": [
{
"authz_metadata": {"spam": "egg"},
"client_id": "🐗🐗🐗🐗",
"connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
"metadata": {"spam": "egg"}
},
{
"authz_metadata": 10,
"client_id": "🐹🐹🐹🐹",
"connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
"metadata": 10
}
]
}
{signaling_notify_client_id, false}
{signaling_notify_connection_id, true}
{
"type": "notify",
"event_type": "connection.created",
"authn_metadata": {"spam": "egg"},
"authz_metadata": "bacon",
"metadata": "bacon",
"metadata_list": [
{
"authz_metadata": {"spam": "egg"},
"connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
"metadata": {"spam": "egg"}
},
{
"authz_metadata": 10,
"connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
"metadata": 10
}
]
}
signaling_notify_client_id = true
signaling_notify_connection_id = false
{
"type": "notify",
"event_type": "connection.created",
"authn_metadata": {"spam": "egg"},
"authz_metadata": "bacon",
"metadata": "bacon",
"metadata_list": [
{
"authz_metadata": {"spam": "egg"},
"client_id": "🐗🐗🐗🐗",
"metadata": {"spam": "egg"}
},
{
"authz_metadata": 10,
"client_id": "🐹🐹🐹🐹",
"metadata": 10
}
]
}
signaling_notify_client_id = false
signaling_notify_connection_id = false
{
"type": "notify",
"event_type": "connection.created",
"authn_metadata": {"spam": "egg"},
"authz_metadata": "bacon",
"metadata": "bacon",
"metadata_list": [
{
"authz_metadata": {"spam": "egg"},
"metadata": {"spam": "egg"}
},
{
"authz_metadata": 10,
"metadata": 10
}
]
}
すでに参加しており、他のクライアントが参加してきた場合や離脱した場合は以下の通りになります。
{
"type": "notify",
"metadata": 10
}
認証成功時払い出しのシグナリング通知メタデータのサイズ制限¶
制限はありません。