sora-js-sdk
    Preparing search index...

    Interface ConnectionMessaging

    messaging_only 専用のクラス 利用する場合は Sora 側での設定が必要 Role は "sendonly" に固定される

    interface ConnectionMessaging {
        authMetadata: JSONType;
        bundleId: string | null;
        channelId: string;
        clientId: string | null;
        connectedSignalingUrl: string;
        connectionId: string | null;
        constraints: unknown;
        contactSignalingUrl: string;
        debug: boolean;
        encodings: RTCRtpEncodingParameters[];
        metadata: JSONType | undefined;
        options: ConnectionOptions;
        pc: RTCPeerConnection | null;
        remoteConnectionIds: string[];
        role: string;
        rpcMethods: string[];
        sessionId: string | null;
        signalingUrlCandidates: string | string[];
        simulcast: boolean;
        spotlight: boolean;
        stream: MediaStream | null;
        get audio(): boolean;
        get datachannels(): DataChannelConfiguration[];
        get signalingUrl(): string | string[];
        get video(): boolean;
        connect(): Promise<void>;
        disconnect(): Promise<void>;
        on<T extends keyof Callbacks>(kind: T, callback: Callbacks[T]): void;
        removeAudioTrack(stream: MediaStream): Promise<void>;
        removeVideoTrack(stream: MediaStream): Promise<void>;
        replaceAudioTrack(
            stream: MediaStream,
            audioTrack: MediaStreamTrack,
        ): Promise<void>;
        replaceVideoTrack(
            stream: MediaStream,
            videoTrack: MediaStreamTrack,
        ): Promise<void>;
        rpc<T = unknown>(
            method: string,
            params?: unknown[] | Record<string, unknown>,
            options?: RPCOptions,
        ): Promise<T>;
        sendMessage(label: string, message: Uint8Array): Promise<void>;
        stopAudioTrack(stream: MediaStream): Promise<void>;
        stopVideoTrack(stream: MediaStream): Promise<void>;
    }

    Hierarchy (View Summary)

    Index

    Properties

    authMetadata: JSONType

    type offer に含まれる認証 metadata

    bundleId: string | null

    バンドルID

    channelId: string

    チャネルID

    clientId: string | null

    クライアントID

    connectedSignalingUrl: string

    WS シグナリングで type offer メッセージを受信したシグナリング URL

    connectionId: string | null

    コネクションID

    constraints: unknown

    PeerConnection に渡す configuration

    contactSignalingUrl: string

    WS シグナリングで最初に type connect を送信したシグナリング URL

    debug: boolean

    デバッグフラグ

    encodings: RTCRtpEncodingParameters[]

    サイマルキャストで使用する RTCRtpEncodingParameters のリスト

    metadata: JSONType | undefined

    メタデータ

    接続オプション

    pc: RTCPeerConnection | null

    PeerConnection インスタンス

    remoteConnectionIds: string[]

    リモートコネクションIDのリスト

    role: string

    ロール(sendonly | sendrecv | recvonly)

    rpcMethods: string[]

    type offer に含まれる RPC メソッドのリスト

    sessionId: string | null

    type offer に含まれるセッションID。Sora 2023.2.0 以降に接続した時に含まれる

    signalingUrlCandidates: string | string[]

    シグナリングに使用する URL 候補

    simulcast: boolean

    サイマルキャスト

    spotlight: boolean

    スポットライト

    stream: MediaStream | null

    メディアストリーム

    Accessors

    • get audio(): boolean

      audio が有効かどうか

      Returns boolean

    • get signalingUrl(): string | string[]

      シグナリングに使用する URL

      Returns string | string[]

    • get video(): boolean

      video が有効かどうか

      Returns boolean

    Methods

    • Sora へ接続するメソッド、legacyStream は利用できない

      Returns Promise<void>

      const messaging = connection.messaging("sora");
      await messaging.connect();
    • 切断処理をするメソッド

      Returns Promise<void>

      await sendrecv.disconnect();
      
    • SendRecv Object で発火するイベントのコールバックを設定するメソッド

      Type Parameters

      Parameters

      • kind: T

        イベントの種類(disconnect, push, track, removetrack, notify, switched, connected, log, timeout, timeline, signaling, message, datachannel)

      • callback: Callbacks[T]

        コールバック関数

      Returns void

      const sendrecv = connection.sendrecv("sora");
      sendrecv.on("track", (event) => {
      // callback 処理
      });
    • audio track を削除するメソッド

      Parameters

      • stream: MediaStream

        audio track を削除する MediaStream

      Returns Promise<void>

      const sendrecv = connection.sendrecv("sora");
      const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
      await sendrecv.connect(mediaStream);

      sendrecv.removeAudioTrack(mediaStream);

      stream の audio track を停止後、PeerConnection の senders から対象の sender を削除します。 内部で 100ms 待機する間に disconnect() / abend() 等で RTCPeerConnection が破棄された場合は、 ConnectError (reason "REMOVE_TRACK_DURING_DISCONNECT") で reject します

    • video track を削除するメソッド

      Parameters

      • stream: MediaStream

        video track を削除する MediaStream

      Returns Promise<void>

      const sendrecv = connection.sendrecv("sora");
      const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
      await sendrecv.connect(mediaStream);

      sendrecv.removeVideoTrack(mediaStream);

      stream の video track を停止後、PeerConnection の senders から対象の sender を削除します。 内部で 100ms 待機する間に disconnect() / abend() 等で RTCPeerConnection が破棄された場合は、 ConnectError (reason "REMOVE_TRACK_DURING_DISCONNECT") で reject します

    • audio track を入れ替えするメソッド

      Parameters

      • stream: MediaStream

        audio track を削除する MediaStream

      • audioTrack: MediaStreamTrack

        新しい audio track

      Returns Promise<void>

      const sendrecv = connection.sendrecv("sora");
      const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
      await sendrecv.connect(mediaStream);

      const replacedMediaStream = await navigator.mediaDevices.getUserMedia({audio: true});
      await sendrecv.replaceAudioTrack(mediaStream, replacedMediaStream.getAudioTracks()[0]);

      stream の audio track を停止後、新しい audio track をセットします。 内部で 100ms 待機する間に disconnect() / abend() 等で RTCPeerConnection が破棄された場合は、 ConnectError (reason "REMOVE_TRACK_DURING_DISCONNECT") で reject します。 このとき新しい audioTrackstream に追加されないため、呼び出し元側で audioTrack.stop() を呼んでください

    • video track を入れ替えするメソッド

      Parameters

      • stream: MediaStream

        video track を削除する MediaStream

      • videoTrack: MediaStreamTrack

        新しい video track

      Returns Promise<void>

      const sendrecv = connection.sendrecv("sora");
      const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
      await sendrecv.connect(mediaStream);

      const replacedMediaStream = await navigator.mediaDevices.getUserMedia({video: true});
      await sendrecv.replaceVideoTrack(mediaStream, replacedMediaStream.getVideoTracks()[0]);

      stream の video track を停止後、新しい video track をセットします。 内部で 100ms 待機する間に disconnect() / abend() 等で RTCPeerConnection が破棄された場合は、 ConnectError (reason "REMOVE_TRACK_DURING_DISCONNECT") で reject します。 このとき新しい videoTrackstream に追加されないため、呼び出し元側で videoTrack.stop() を呼んでください

    • RPC DataChannel でリクエストを送信するメソッド

      Type Parameters

      • T = unknown

      Parameters

      • method: string

        RPC メソッド名

      • Optionalparams: unknown[] | Record<string, unknown>

        RPC パラメーター

      • Optionaloptions: RPCOptions

        RPC オプション

      Returns Promise<T>

      Promise - レスポンスの result

      const result = await connection.rpc('2025.2.0/RequestSimulcastRid', { rid: 'r0' });
      
    • DataChannel を使用してメッセージを送信するメソッド

      Parameters

      • label: string

        メッセージを送信する DataChannel のラベル

      • message: Uint8Array

        Uint8Array

      Returns Promise<void>

    • audio track を削除するメソッド

      Parameters

      • stream: MediaStream

        audio track を削除する MediaStream

      Returns Promise<void>

      この関数は非推奨です。代わりに removeAudioTrack を使用してください

      const sendrecv = connection.sendrecv("sora");
      const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
      await sendrecv.connect(mediaStream);

      sendrecv.stopAudioTrack(mediaStream);

      stream の audio track を停止後、PeerConnection の senders から対象の sender を削除します。 内部で 100ms 待機する間に disconnect() / abend() 等で RTCPeerConnection が破棄された場合は、 ConnectError (reason "REMOVE_TRACK_DURING_DISCONNECT") で reject します

    • video track を削除するメソッド

      Parameters

      • stream: MediaStream

        video track を停止する MediaStream

      Returns Promise<void>

      この関数は非推奨です。代わりに removeVideoTrack を使用してください

      const sendrecv = connection.sendrecv("sora");
      const mediaStream = await navigator.mediaDevices.getUserMedia({audio: true, video: true});
      await sendrecv.connect(mediaStream);

      sendrecv.stopVideoTrack(mediaStream);

      stream の video track を停止後、PeerConnection の senders から対象の sender を削除します。 内部で 100ms 待機する間に disconnect() / abend() 等で RTCPeerConnection が破棄された場合は、 ConnectError (reason "REMOVE_TRACK_DURING_DISCONNECT") で reject します