WebRTCMultiplayerPeer
Наследует: MultiplayerPeer < PacketPeer < RefCounted < Object
Простой интерфейс для создания одноранговой ячеистой сети, состоящей из WebRTCPeerConnection, совместимой с MultiplayerAPI.
Описание
Этот класс создает полную сетку WebRTCPeerConnection (одно соединение для каждого пира), которую можно использовать как MultiplayerAPI.multiplayer_peer.
Вы можете добавить каждый WebRTCPeerConnection с помощью add_peer() или удалить их с помощью remove_peer(). Пиры должны быть добавлены в WebRTCPeerConnection.STATE_NEW состоянии, чтобы позволить ему создавать соответствующие каналы. Этот класс не будет создавать предложения или задавать описания, он будет только опрашивать их и уведомлять о подключениях и отключениях.
При создании пира с помощью create_client() или create_server() метод MultiplayerPeer.is_server_relay_supported() вернет true, что позволит обмениваться пирами и ретранслировать пакеты, если поддерживается реализацией MultiplayerAPI.
Примечание: При экспорте в Android убедитесь, что в настройках экспорта Android включено разрешение INTERNET перед экспортом проекта или использованием развертывания в один клик. В противном случае сетевое взаимодействие любого рода будет заблокировано Android.
Методы
add_peer(peer: WebRTCPeerConnection, peer_id: int, unreliable_lifetime: int = 1) |
|
create_client(peer_id: int, channels_config: Array = []) |
|
create_mesh(peer_id: int, channels_config: Array = []) |
|
create_server(channels_config: Array = []) |
|
void |
remove_peer(peer_id: int) |
Описания метода
Error add_peer(peer: WebRTCPeerConnection, peer_id: int, unreliable_lifetime: int = 1) 🔗
Добавьте нового пира в сетку с заданным peer_id. WebRTCPeerConnection должен находиться в состоянии WebRTCPeerConnection.STATE_NEW.
Будут созданы три канала для надежного, ненадежного и упорядоченного транспорта. Значение unreliable_lifetime будет передано в параметр "maxPacketLifetime" при создании ненадежных и упорядоченных каналов (см. WebRTCPeerConnection.create_data_channel()).
Error create_client(peer_id: int, channels_config: Array = []) 🔗
Инициализируйте многопользовательский одноранговый узел как клиент с заданным peer_id (должен быть между 2 и 2147483647). В этом режиме вам следует вызывать add_peer() только один раз и с peer_id из 1. Этот режим включает MultiplayerPeer.is_server_relay_supported(), позволяя верхнему слою MultiplayerAPI выполнять обмен одноранговыми узлами и ретрансляцию пакетов.
Вы можете дополнительно указать массив channels_config TransferMode, который будет использоваться для создания дополнительных каналов (WebRTC поддерживает только один режим передачи на канал).
Error create_mesh(peer_id: int, channels_config: Array = []) 🔗
Инициализируйте многопользовательский узел как сетку (т. е. все узлы подключаются друг к другу) с заданным peer_id (должен быть в диапазоне от 1 до 2147483647).
Error create_server(channels_config: Array = []) 🔗
Инициализируйте многопользовательский одноранговый узел как сервер (с уникальным идентификатором 1). Этот режим включает MultiplayerPeer.is_server_relay_supported(), позволяя верхнему слою MultiplayerAPI выполнять обмен одноранговыми узлами и ретрансляцию пакетов.
Вы можете дополнительно указать массив channels_config TransferMode, который будет использоваться для создания дополнительных каналов (WebRTC поддерживает только один режим передачи на канал).
Dictionary get_peer(peer_id: int) 🔗
Возвращает словарное представление однорангового узла с заданным peer_id с тремя ключами. "connection" содержит WebRTCPeerConnection к этому одноранговому узлу, "channels" — массив из трех WebRTCDataChannel и "connected" — логическое значение, указывающее, подключено ли в данный момент одноранговое соединение (все три канала открыты).
Dictionary get_peers() 🔗
Возвращает словарь, ключами которого являются идентификаторы одноранговых узлов, а значениями — представление одноранговых узлов, как в get_peer().
Возвращает true, если указанный peer_id находится в карте пиров (хотя он может быть не подключен).
void remove_peer(peer_id: int) 🔗
Удалить пир с заданным peer_id из сетки. Если пир был подключен и для него был отправлен MultiplayerPeer.peer_connected, то будет отправлен MultiplayerPeer.peer_disconnected.