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.CreateDataChannel("Messages", reliable: true);
The peer that accepted the connection request then gets an onPeerDataChannel
event for each created channel.
var config = new RainwayConfig {
OnPeerDataChannel: (runtime, peer, channelName, mode) => {
Console.WriteLine($"New data channel {channelName} create by remote peer {peer}");
}
// additional config entries
}
Sending and receiving messages
To send a message to a Peer, use the send
method on RainwayPeer:
peer.Send("Messages", "string that will be UTF-8 encoded");
peer.Send("Messages", new byte[] { 1, 2, 3 });
Messages from the remote peer are received by the OnPeerMessage
handler:
var config = new RainwayConfig {
OnPeerMessage: (runtime, peer, channelName, message) => {
Console.WriteLine($"Got a message from {peer.ExternalId}: {message}");
}
// additional config entries
}
Updated over 2 years ago