Signaling Protocol | Unity Render Streaming | 2.0.2-preview
docs.unity.cn
    Show / Hide Table of Contents

    Signaling Protocol

    Unity Render Streaming のパッケージにおいては2種類のシグナリングプロトコルをサンプルとして提供しています。

    • HttpSignaling
    • WebSocketSignaling

    サンプルにおいては、 URL Signaling に指定されるスキーマからどちらのプロトコルを使用するか判定しています。

    Render Streaming backend

    http始まりの場合は、HttpSignaling。 ws始まりの場合は、WebSocketSignalingを使用します。

    HttpSignaling

    Httpリクエストによって、シグナリングを行います。 シグナリングサーバーへは指定間隔でポーリングを行い、前回との差分のOfferとCandidateを取得します。

    WebSocketSignaling

    WebSocketによって、シグナリングを行います。 シグナリングサーバーがOfferやCandidateを受け取ったタイミングで、接続されているクライアントに配信します。

    Warning

    自己署名証明書を使用しているサーバーでは、iOS Safari でWebSocketが動作しないことを確認しています。 iOS Safari でのWebSocketによるシグナリングの動作を確認する場合は、信頼された証明機関から発行された証明書を使用してください。もしくは、Httpによるシグナリングをお試しください。

    独自のシグナリングクラス

    どちらのシグナリングクラスも ISignaling を実装しています。 独自のシグナリングクラスを作成する場合は、 ISignaling を継承すると UnityRenderStreamingクラスからそのまま差し替えて使用することができます。 以下に各メソッドの説明します。

    void Start();
    
    • シグナリングを開始する際に呼び出すメソッドです。
    • サンプルでは、各プロトコルにおけるサーバーとのセッション確立を行っています。
    void Stop();
    
    • シグナリングを終了する際に呼び出すメソッドです。
    • サンプルでは、各プロトコルにおけるサーバーとのセッション終了を行っています。
    public delegate void OnOfferHandler(ISignaling signaling, DescData e);
    event OnOfferHandler OnOffer;
    
    • シグナリングによって新しいOfferを受け取ったときに実行する処理を登録するデリゲートです。
    public delegate void OnAnswerHandler(ISignaling signaling, DescData e);
    event OnAnswerHandler OnAnswer;
    
    • シグナリングによって新しいAnswerを受け取ったときに実行する処理を登録するデリゲートです。
    • 現在のバージョンでは、UnityにおいてAnswerを受け取る場合がないため使用されていません。
    public delegate void OnIceCandidateHandler(ISignaling signaling, CandidateData e);
    event OnIceCandidateHandler OnIceCandidate;
    
    • シグナリングによって新しいCadicateを受け取ったときに実行する処理を登録するデリゲートです。
    void SendOffer();
    
    • シグナリングでOfferを送る際に呼び出すメソッドです。
    • 現在のバージョンではUnityからOfferを送ることができないため、サンプルでは実装されていません。
    void SendAnswer(string connectionId, RTCSessionDescription answer);
    
    • シグナリングでAnswerを送る際に呼び出すメソッドです。
    void SendCandidate(string connectionId, RTCIceCandidate candidate);
    
    • シグナリングでCandidateを送る際に呼び出すメソッドです。
    Back to top Copyright © 2020 Unity Technologies
    Generated by DocFX