シグナリング通知メタデータ

概要

signaling_notify_metadata はユーザーが参加や離脱したときに送られるシグナリング通知に含まれるメタデータです。

シグナリング接続時、または認証ウェブフック成功の戻り値に signaling_notify_metadata で JSON を指定することで利用できるようになります。

新しく参加したときにはすでに参加しているクライアントの signaling_notify_metadata の値がリストで送られます。

注意

シグナリング通知メタデータ拡張機能 を有効にしている場合、 metadata ではなく auth_metadata のみに値が入るよう挙動が変わります。

sora.conf の指定

sora.confsignaling_notify_metadata = false を指定することで、 シグナリング通知時に metadatadata を含まなくなります。

シグナリング接続時での指定

"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": [
        {
            "connection_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "client_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "authn_metadata": {"spam": "egg"},
            "metadata": {"spam": "egg"}
        },
        {
            "connection_id": "4D40YWH56N5S99QHJV6GAPNHB0",
            "client_id": "KKBFZTQXDD6H7FD2NYCQX8S474",
            "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": "🐗🐗🐗🐗",
            "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",
    "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 = false

  • signaling_notify_connection_id = true

{
    "type": "notify",
    "event_type": "connection.created",
    "authn_metadata": {"spam": "egg"},
    "authz_metadata": "bacon",
    "metadata": "bacon",
    "data": [
        {
            "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",
    "data": [
        {
            "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",
    "data": [
        {
            "authz_metadata": {"spam": "egg"},
            "metadata": {"spam": "egg"}
        },
        {
            "authz_metadata": 10,
            "metadata": 10
        }
    ]
}

すでに参加しており、他のクライアントが参加してきた場合や離脱した場合は以下の通りになります。

{
    "type": "notify",
    "metadata": 10
}

認証成功時払い出しのシグナリング通知メタデータのサイズ制限

制限はありません。

© Copyright 2022, Shiguredo Inc Created using Sphinx 5.0.2