Struct WebRTCMultiplayer
A simple interface to create a peer-to-peer mesh network composed of WebRTCPeerConnection
that is compatible with the MultiplayerAPI
.
struct WebRTCMultiplayer
;
This class constructs a full mesh of WebRTCPeerConnection
(one connection for each peer) that can be used as a MultiplayerAPI
.
You can add each WebRTCPeerConnection
via addPeer
or remove them via removePeer
. Peers must be added in constant WebRTCPeerConnection
state to allow it to create the appropriate channels. This class will not create offers nor set descriptions, it will only poll them, and notify connections and disconnections.
NetworkedMultiplayerPeer
and NetworkedMultiplayerPeer
will not be emitted unless server_compatibility
is true
in initialize
. Beside that data transfer works like in a NetworkedMultiplayerPeer
.
Methods
Name | Description |
---|---|
addPeer
|
Add a new peer to the mesh with the given peer_id . The WebRTCPeerConnection must be in state constant WebRTCPeerConnection .
Three channels will be created for reliable, unreliable, and ordered transport. The value of unreliable_lifetime will be passed to the maxPacketLifetime option when creating unreliable and ordered channels (see WebRTCPeerConnection ).
|
close
|
Close all the add peer connections and channels, freeing all resources. |
getPeer
|
Return a dictionary representation of the peer with given peer_id with three keys. connection containing the WebRTCPeerConnection to this peer, channels an array of three WebRTCDataChannel , and connected a boolean representing if the peer connection is currently connected (all three channels are open).
|
getPeers
|
Returns a dictionary which keys are the peer ids and values the peer representation as in getPeer .
|
hasPeer
|
Returns true if the given peer_id is in the peers map (it might not be connected though).
|
initialize
|
Initialize the multiplayer peer with the given peer_id (must be between 1 and 2147483647).
If server_compatibilty is false (default), the multiplayer peer will be immediately in state constant NetworkedMultiplayerPeer and NetworkedMultiplayerPeer will not be emitted.
If server_compatibilty is true the peer will suppress all NetworkedMultiplayerPeer signals until a peer with id constant NetworkedMultiplayerPeer connects and then emit NetworkedMultiplayerPeer . After that the signal NetworkedMultiplayerPeer will be emitted for every already connected peer, and any new peer that might connect. If the server peer disconnects after that, signal NetworkedMultiplayerPeer will be emitted and state will become constant NetworkedMultiplayerPeer .
|
removePeer
|
Remove the peer with given peer_id from the mesh. If the peer was connected, and NetworkedMultiplayerPeer was emitted for it, then NetworkedMultiplayerPeer will be emitted.
|