DataChannel
DataChannel はテキストやバイナリをピア間で送受信するための機能です。WebSocket と類似した機能を利用できます。
Note
サンプル には DataChannel の動作を確認するための DataChannel シーンが含まれています。
DataChannel の作成
DataChannel を作成するには, RTCPeerConnection の CreateDataChannel メソッドを呼び出します。
// `RTCDataChannel` インスタンスを作成。
var option = new RTCDataChannelInit();
var channel = peerConnection.CreateDataChannel("test", option);
他のピアが DataChannel を作成したとき、 OnDataChannel がコールバックとして呼ばれます。
// `OnDataChannel` にコールバックを登録。
peerConnnection.OnDataChannel = channel =>
{
//
}
ピア間で DataChannel による通信が可能になると、RTCDataChannel.OnOpen が呼ばれます。また、通信が切断されると、RTCDataChannel.OnClose が呼ばれます。
メッセージの送信
メッセージにはテキストやバイナリが利用できます。RTCDataChannel.Send メソッドを呼び出します。
// テキストを送信。
string text = "hello";
channel.Send(text);
// バイナリを送信。
byte[] data = System.Text.Encoding.ASCII.GetBytes(text);
channel.Send(data);
// NativeArray を送信。
NativeArray<float> array = new NativeArray<float>(10, Allocator.Temp);
channel.Send(array);
メッセージの受信
メッセージを受信するには RTCDataChannel.OnMessage を実装します。
// `OnMessage` にコールバックを登録。
channel.OnMessage = bytes =>
{
// ...
}