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

シグナリング通知メタデータの破壊的変更について

metadata_list -> data

2021 年 6 月リリース予定の Sora にてシグナリング通知メタデータの metadata_listdata に変更します。

この機能はシグナリング通知メタデータ拡張を利用するための signaling_notify_metadata_ext = true にすることで確認可能です。

シグナリング通知メタデータ拡張については シグナリング通知メタデータ をご確認ください。

概要

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

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

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

sora.conf の指定

sora.confsignaling_notify_metadata = false を指定することで、 シグナリング通知時に metadatametadata_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
}

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

制限はありません。