WebRTCMultiplayerPeer
Hereda: MultiplayerPeer < PacketPeer < RefCounted < Object
Una simple interfaz para crear una red de malla entre pares compuesta por WebRTCPeerConnection que es compatible con el MultiplayerAPI.
Descripción
Esta clase construye una malla completa de WebRTCPeerConnection (una conexión para cada par) que puede ser utilizada como un MultiplayerAPI.multiplayer_peer.
Puedes añadir cada WebRTCPeerConnection a través de add_peer() o eliminarlos a través de remove_peer(). Los pares deben ser agregados en el estado WebRTCPeerConnection.STATE_NEW para permitirle crear los canales apropiados. Esta clase no creará ofertas ni establecerá descripciones, sólo las sondeará, y notificará las conexiones y desconexiones.
Al crear el par a través de create_client() o create_server(), el método MultiplayerPeer.is_server_relay_supported() devolverá true permitiendo el intercambio de pares y el reenvío de paquetes cuando sea soportado por la implementación de MultiplayerAPI.
Nota: Al exportar a Android, asegúrate de habilitar el permiso INTERNET en el preajuste de exportación de Android antes de exportar el proyecto o utilizar la implementación con un solo clic. De lo contrario, la comunicación de red de cualquier tipo será bloqueada por Android.
Métodos
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) |
Descripciones de Métodos
Error add_peer(peer: WebRTCPeerConnection, peer_id: int, unreliable_lifetime: int = 1) 🔗
Añade un nuevo par a la malla con el peer_id dado. El WebRTCPeerConnection debe estar en el estado WebRTCPeerConnection.STATE_NEW.
Se crearán tres canales para transporte fiable, no fiable y ordenado. El valor de unreliable_lifetime se pasará a la opción "maxPacketLifetime" al crear canales no fiables y ordenados (véase WebRTCPeerConnection.create_data_channel()).
Error create_client(peer_id: int, channels_config: Array = []) 🔗
Inicializa el par multijugador como cliente con el peer_id dado (debe estar entre 2 y 2147483647). En este modo, sólo debe llamar a add_peer() una vez y con el peer_id de 1. Este modo activa MultiplayerPeer.is_server_relay_supported(), permitiendo que la capa superior MultiplayerAPI realice el intercambio de pares y el reenvío de paquetes.
Opcionalmente, puedes especificar un array channels_config de TransferMode que se utilizará para crear canales adicionales (WebRTC sólo soporta un modo de transferencia por canal).
Error create_mesh(peer_id: int, channels_config: Array = []) 🔗
Inicializa el par multijugador como una malla (es decir, todos los pares se conectan entre sí) con el peer_id dado (debe estar entre 1 y 2147483647).
Error create_server(channels_config: Array = []) 🔗
Inicializa el par multijugador como servidor (con ID único de 1). Este modo activa MultiplayerPeer.is_server_relay_supported(), permitiendo que la capa superior MultiplayerAPI realice el intercambio de pares y el reenvío de paquetes.
Opcionalmente, puedes especificar un array channels_config de TransferMode que se utilizará para crear canales adicionales (WebRTC sólo soporta un modo de transferencia por canal).
Dictionary get_peer(peer_id: int) 🔗
Devuelve una representación en diccionario del par con el peer_id dado con tres claves: "connection" que contiene el WebRTCPeerConnection a este par, "channels" un array de tres WebRTCDataChannel, y "connected" un booleano que representa si la conexión del par está actualmente conectada (los tres canales están abiertos).
Dictionary get_peers() 🔗
Devuelve un diccionario cuyas claves son las identificaciones de los pares y valora la representación de los pares como en get_peer().
Devuelve true si el peer_id dado está en el mapa de pares (aunque podría no estar conectado).
void remove_peer(peer_id: int) 🔗
Quita el par con el peer_id dado de la malla. Si el par estaba conectado, y se emitió MultiplayerPeer.peer_connected para él, entonces se emitirá MultiplayerPeer.peer_disconnected.