シグナリング通知メタデータ¶
概要¶
signaling_notify_metadata はユーザーが参加や離脱したときに送られるシグナリング通知に含まれるメタデータです。
シグナリング接続時、または認証ウェブフック成功の戻り値に signaling_notify_metadata で JSON を指定することで利用できるようになります。
新しく参加したときにはすでに参加しているクライアントの signaling_notify_metadata の値がリストで送られます。
注意¶
シグナリング通知メタデータ拡張機能 を有効にしている場合、
metadata ではなく authz_metadata のみに値が入るよう挙動が変わります。
sora.conf の指定¶
sora.conf で signaling_notify_metadata = false を指定することで、
シグナリング通知時に metadata や data を含まなくなります。
data の内容は signaling_notify_client_id や signaling_notify_bundle_id 、 signaling_notify_connection_id の設定により変化します。
設定による data の出力内容の違いは 表 2. signaling_notify_client_id、 signaling_notify_bundle_id および signaling_notify_connection_id の設定値による json 型の中身 をご確認ください
設定を行ったときの出力例は sora.conf の設定内容とシグナリング通知メタデータ出力の例 をご確認ください
シグナリング接続時での指定¶
"type": "connect" 接続時に signaling_notify_metadata で JSON 型の好きな値を指定できます。
{
    "type": "connect",
    "role": "sendonly",
    "channel_id": "bacon",
    "signaling_notify_metadata": {"spam": "egg"}
}
シグナリング接続時に指定した値は、通知時に metadata として通知されます。
{
    "type": "notify",
    "event_type": "connection.created",
    "authn_metadata": {"spam": "egg"},
    "metadata": {"spam": "egg"},
    "data": [
        {
            "client_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "bundle_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "authn_metadata": {"spam": "egg"},
            "metadata": {"spam": "egg"}
        },
        {
            "client_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "bundle_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "authn_metadata": 10,
            "metadata": 10
        }
    ]
}
また auth_metadata としても通知されます。
シグナリング接続時に指定できるシグナリング通知メタデータのサイズ制限¶
重要
シグナリング接続時に指定できるシグナリング通知メタデータのサイズは最大 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",
    "data": [
        {
            "authz_metadata": {"spam": "egg"},
            "client_id": "🐗🐗🐗🐗",
            "bundle_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "metadata": {"spam": "egg"}
        },
        {
            "authz_metadata": 10,
            "client_id": "🐹🐹🐹🐹",
            "bundle_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "metadata": 10
        }
    ]
}
すでに参加しており、他のクライアントが参加してきた場合や離脱した場合は以下の通りになります。
{
    "type": "notify",
    "metadata": 10
}
認証成功時払い出しのシグナリング通知メタデータのサイズ制限¶
制限はありません。
sora.conf の設定内容とシグナリング通知メタデータ出力の例¶
sora.conf
signaling_notify_client_id = truesignaling_notify_bundle_id = truesignaling_notify_connection_id = true
{
    "type": "notify",
    "event_type": "connection.created",
    "authn_metadata": {"spam": "egg"},
    "authz_metadata": "bacon",
    "metadata": "bacon",
    "data": [
        {
            "authz_metadata": {"spam": "egg"},
            "client_id": "🐗🐗🐗🐗",
            "bundle_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "metadata": {"spam": "egg"}
        },
        {
            "authz_metadata": 10,
            "client_id": "🐹🐹🐹🐹",
            "bundle_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "metadata": 10
        }
    ]
}
signaling_notify_client_id = falsesignaling_notify_bundle_id = truesignaling_notify_connection_id = true
{
    "type": "notify",
    "event_type": "connection.created",
    "authn_metadata": {"spam": "egg"},
    "authz_metadata": "bacon",
    "metadata": "bacon",
    "data": [
        {
            "authz_metadata": {"spam": "egg"},
            "bundle_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "metadata": {"spam": "egg"}
        },
        {
            "authz_metadata": 10,
            "bundle_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "metadata": 10
        }
    ]
}
signaling_notify_client_id = truesignaling_notify_bundle_id = falsesignaling_notify_connection_id = true
{
    "type": "notify",
    "event_type": "connection.created",
    "authn_metadata": {"spam": "egg"},
    "authz_metadata": "bacon",
    "metadata": "bacon",
    "data": [
        {
            "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 = truesignaling_notify_bundle_id = truesignaling_notify_connection_id = false
{
    "type": "notify",
    "event_type": "connection.created",
    "authn_metadata": {"spam": "egg"},
    "authz_metadata": "bacon",
    "metadata": "bacon",
    "data": [
        {
            "authz_metadata": {"spam": "egg"},
            "client_id": "🐗🐗🐗🐗",
            "bundle_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "metadata": {"spam": "egg"}
        },
        {
            "authz_metadata": 10,
            "client_id": "🐹🐹🐹🐹",
            "bundle_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "metadata": 10
        }
    ]
}
signaling_notify_client_id = falsesignaling_notify_bundle_id = falsesignaling_notify_connection_id = false
{
    "type": "notify",
    "event_type": "connection.created",
    "authn_metadata": {"spam": "egg"},
    "authz_metadata": "bacon",
    "metadata": "bacon",
    "data": [
        {
            "authz_metadata": {"spam": "egg"},
            "metadata": {"spam": "egg"}
        },
        {
            "authz_metadata": 10,
            "metadata": 10
        }
    ]
}