Exchanging Messages
Main article: Data Channels
Exchanging Messages and Data
Rainway provides Peers with the ability to create Data Channels, over which they can exchange arbitrary application-level binary data.
Sending messages over this channel is permitted any time two peers are connected end-to-end, whether they're streaming or not.
Initialization
The peer that requested the peer-to-peer connection is responsible for creating Data Channels:
peer.CreateDataChannelAsync(new DataChannelOptions() { Id = "Messages", Mode = DataChannelMode.Reliable });
The peer that accepted the connection request then gets a DataChannel
event for each created channel.
// add an event handler, that takes the sender (peer, in this case) and the event
peer.DataChannel += (sender, ev) => {
// obtain the data channel
var channel = ev.Data;
};
Sending and receiving messages
To send a message to a DataChannel, use the Send
method:
channel.Send("hello world");
Messages from the remote peer are received by the Message
event:
// add an event handler, that takes the sender (channel, in this case) and the event
channel.Message += (sender, ev) => {
// byte[] data, composing the message
var data = ev.Data;
// same data, interpreted as a utf-8 string
var str = ev.AsString;
};
Updated over 2 years ago