リアルタイムメッセージング機能

概要

ここでは Sora Unity SDK のサンプル集を使ってリアルタイムメッセージング機能について説明します。

Sora Unity SDK サンプル集

リアルタイムメッセージング機能の注意点

リアルタイムメッセージングを使用する場合は Data Channel Signaling が有効になっている必要があります。

リアルタイムメッセージングの詳細については Sora のドキュメント を参照してください。

リアルタイムメッセージング設定

リアルタイムメッセージングはラベルを指定することで利用することができます。

Data Channels

設定したいメッセージの数を指定します。

Element

DataChannels で指定した数だけ生成されます。それぞれのラベルを指定します。

Label

メッセージのラベルを指定します。先頭に # が付いている必要があります。

Direction

メッセージを送受信、または送信するか受信するかを指定します。

sendrecv は送受信、sendonly は送信のみ、recvonly は受信のみになります。

Ordered

Ordered を有効にするとメッセージが順番に届くようになります。

Ordered を有効にするには以下の設定が必要です。

  • Enable Ordered を有効にする
  • Ordered を有効にする

Max Packet Life Time

最大再送時間を指定することができます。デフォルトは未指定で無制限です。

Max Packet Life Time を有効にするには以下の設定が必要です。

  • Enable Max Packet Life Time を有効にする
  • Max Packet Life Time を有効にする

Max Retransmits

最大再送回数を指定することができます。デフォルトは未指定で無制限です。

Max Retransmits を有効にするには以下の設定が必要です。

  • Enable Max Retransmits を有効にする
  • Max Retransmits で再送回数を指定する

Protocol

現在指定する必要はありません。

Compress

Compress を有効にするとメッセージが圧縮されます。

Compress を有効にするには以下の設定が必要です。

  • Enable Compress を有効にする
  • Compress を有効にする

Header

Header を有効にして、Inspector で以下の設定をすることで Sora がメッセージにヘッダーを付与します。

  • {"type": "sender_connection_id"} を設定する

メッセージの送信

Sora Unity SDK サンプル集ではメッセージの送信は ゲーム画面の送信ボタンを押下することで送信できます。

メッセージの内容は aaa を送信するようになっています。

SoraSample.cs の以下に示す部分を変更することで送信するメッセージを変更することができます。

public void OnClickSend()
{
    if (fixedDataChannelLabels == null || sora == null)
    {
        return;
    }
    // リアルタイムメッセージングを使って全てのラベルに適当なデータを送る
    foreach (var label in fixedDataChannelLabels)
    {
        string message = "aaa";
        sora.SendMessage(label, System.Text.Encoding.UTF8.GetBytes(message));
    }
}