WebRtcMultiplayerPeer
Простой интерфейс для создания одноранговой ячеистой сети, состоящей из WebRTCPeerConnection, совместимой с MultiplayerAPI.
Простой интерфейс для создания одноранговой ячеистой сети, состоящей из WebRtcPeerConnection, совместимой с MultiplayerApi.
Этот класс строит полный сет. WebRtcPeerConnection (одно соединение для каждого сверстника), которое может быть использовано в качестве MultiplayerApi.MultiplayerPeer.
Вы можете добавить каждый WebRtcPeerConnection через WebRtcMultiplayerPeer.AddPeer или удалить их через WebRtcMultiplayerPeer.RemovePeer. Сверстники должны быть добавлены в WebRtcPeerConnection.ConnectionState.New Этот класс не будет создавать оферты или настраивать описания, он будет осматривать только их и уведомлять о связях и разъединении.
При создании сверстника через WebRtcMultiplayerPeer.CreateClient или WebRtcMultiplayerPeer.CreateServer :: MultiplayerPeer.IsServerRelaySupported метод возврата true :: создание возможностей для взаимного обмена и ретрансляции пакетов при поддержке MultiplayerApi :: осуществление.
Примечание: При экспорте в Андроид убедитесь, что вы можете INTERNET В противном случае любая связь будет заблокирована Android.
Объявления сверены с C# SDK 1.0.0. Раскройте имя, чтобы увидеть сигнатуры и описание.
Конструкторы1
WebRtcMultiplayerPeerКонструктор
public WebRtcMultiplayerPeer();Методы8
AddPeerError
public Error AddPeer(WebRtcPeerConnection peer, int peerId, int unreliableLifetime = 1);Добавьте нового пира в сетку с заданным peer_id. WebRtcPeerConnection должен находиться в состоянии WebRtcPeerConnection.ConnectionState.New.
Будут созданы три канала для надежного, ненадежного и упорядоченного транспорта. Значение unreliable_lifetime будет передано в параметр "maxPacketLifetime" при создании ненадежных и упорядоченных каналов (см. WebRtcPeerConnection.CreateDataChannel).
| Имя | Тип | По умолчанию |
|---|---|---|
peer | WebRtcPeerConnection | — |
peerId | int | — |
unreliableLifetime | int | 1 |
ErrorCreateClientError
public Error CreateClient(int peerId, Reckfell.Collections.Array channelsConfig = null);Инициализируйте многопользовательский одноранговый узел как клиент с заданным peer_id (должен быть между 2 и 2147483647). В этом режиме вам следует вызывать WebRtcMultiplayerPeer.AddPeer только один раз и с peer_id из 1. Этот режим включает MultiplayerPeer.IsServerRelaySupported, позволяя верхнему слою MultiplayerApi выполнять обмен одноранговыми узлами и ретрансляцию пакетов.
Вы можете дополнительно указать массив channels_config MultiplayerPeer.TransferModeEnum, который будет использоваться для создания дополнительных каналов (WebRTC поддерживает только один режим передачи на канал).
| Имя | Тип | По умолчанию |
|---|---|---|
peerId | int | — |
channelsConfig | Reckfell.Collections.Array | null |
ErrorCreateMeshError
public Error CreateMesh(int peerId, Reckfell.Collections.Array channelsConfig = null);Инициализируйте многопользовательский узел как сетку (т. е. все узлы подключаются друг к другу) с заданным peer_id (должен быть в диапазоне от 1 до 2147483647).
| Имя | Тип | По умолчанию |
|---|---|---|
peerId | int | — |
channelsConfig | Reckfell.Collections.Array | null |
ErrorCreateServerError
public Error CreateServer(Reckfell.Collections.Array channelsConfig = null);Инициализируйте многопользовательский одноранговый узел как сервер (с уникальным идентификатором 1). Этот режим включает MultiplayerPeer.IsServerRelaySupported, позволяя верхнему слою MultiplayerApi выполнять обмен одноранговыми узлами и ретрансляцию пакетов.
Вы можете дополнительно указать массив channels_config MultiplayerPeer.TransferModeEnum, который будет использоваться для создания дополнительных каналов (WebRTC поддерживает только один режим передачи на канал).
| Имя | Тип | По умолчанию |
|---|---|---|
channelsConfig | Reckfell.Collections.Array | null |
ErrorGetPeerReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary GetPeer(int peerId);Возвращает словарное представление однорангового узла с заданным peer_id с тремя ключами. "connection" содержит WebRtcPeerConnection к этому одноранговому узлу, "channels" — массив из трех WebRtcDataChannel и "connected" — логическое значение, указывающее, подключено ли в данный момент одноранговое соединение (все три канала открыты).
| Имя | Тип | По умолчанию |
|---|---|---|
peerId | int | — |
Reckfell.Collections.DictionaryGetPeersReckfell.Collections.Dictionary
public Reckfell.Collections.Dictionary GetPeers();Возвращает словарь, ключами которого являются идентификаторы одноранговых узлов, а значениями — представление одноранговых узлов, как в WebRtcMultiplayerPeer.GetPeer.
Reckfell.Collections.DictionaryHasPeerbool
public bool HasPeer(int peerId);Возвращает true, если указанный peer_id находится в карте пиров (хотя он может быть не подключен).
| Имя | Тип | По умолчанию |
|---|---|---|
peerId | int | — |
boolRemovePeervoid
public void RemovePeer(int peerId);Удалить пир с заданным peer_id из сетки. Если пир был подключен и для него был отправлен MultiplayerPeer.PeerConnected, то будет отправлен MultiplayerPeer.PeerDisconnected.
| Имя | Тип | По умолчанию |
|---|---|---|
peerId | int | — |