WebRTCMultiplayerPeer
Eredita: MultiplayerPeer < PacketPeer < RefCounted < Object
Un'interfaccia semplice per creare una rete mesh peer-to-peer composta da WebRTCPeerConnection che è compatibile con il MultiplayerAPI.
Descrizione
Questa classe costruisce una rete completa di WebRTCPeerConnection (una connessione per ogni peer) che può essere utilizzata come MultiplayerAPI.multiplayer_peer.
Puoi aggiungere ogni WebRTCPeerConnection tramite add_peer() o rimuoverli tramite remove_peer(). I peer devono essere aggiunti nello stato WebRTCPeerConnection.STATE_NEW per consentirgli di creare i canali appropriati. Questa classe non creerà offerte né imposterà descrizioni, le interrogherà solo e notificherà connessioni e disconnessioni.
Quando si crea il peer tramite create_client() o create_server() il metodo MultiplayerPeer.is_server_relay_supported() restituirà true abilitando lo scambio dei peer e l'inoltro dei pacchetti quando supportato dall'implementazione della MultiplayerAPI.
Nota: Quando si esporta su Android, assicurarsi di abilitare l'autorizzazione INTERNET nella preimpostazione d'esportazione Android prima di esportare il progetto o di utilizzare la distribuzione con un clic. Altrimenti, qualsiasi tipo di comunicazione di rete sarà bloccata da Android.
Metodi
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) |
Descrizioni dei metodi
Error add_peer(peer: WebRTCPeerConnection, peer_id: int, unreliable_lifetime: int = 1) 🔗
Aggiungere un nuovo peer alla rete con il peer_id fornito. Il WebRTCPeerConnection deve essere nello stato WebRTCPeerConnection.STATE_NEW.
Saranno creati tre canali per il trasporto affidabile, non affidabile e ordinato. Il valore di unreliable_lifetime sarà passato all'opzione "maxPacketLifetime" quando si creano canali non affidabili e ordinati (vedi WebRTCPeerConnection.create_data_channel()).
Error create_client(peer_id: int, channels_config: Array = []) 🔗
Inizializzare il peer multigiocatore come client con il dato peer_id (deve essere tra 2 e 2147483647). In questa modalità, si dovrebbe chiamare add_peer() una sola volta e con peer_id di 1. Questa modalità abilita MultiplayerPeer.is_server_relay_supported(), che permette al livello di MultiplayerAPI superiore di eseguire lo scambio tra peer e l'inoltro dei pacchetti.
È possibile specificare facoltativamente un array channels_config di TransferMode che verrà utilizzato per creare canali aggiuntivi (WebRTC supporta solo una modalità di trasferimento per canale).
Error create_mesh(peer_id: int, channels_config: Array = []) 🔗
Inizializza il peer multigiocatore come mesh (cioè tutti i peer si collegano tra loro) con il peer_id fornito (deve essere tra 1 e 2147483647).
Error create_server(channels_config: Array = []) 🔗
Inizializzare il peer multigiocatore come server (con l'ID unico di 1). Questa modalità abilita MultiplayerPeer.is_server_relay_supported(), che permette al livello di MultiplayerAPI superiore di eseguire lo scambio tra peer e l'inoltro dei pacchetti.
È possibile specificare facoltativamente un array channels_config di TransferMode che verrà utilizzato per creare canali aggiuntivi (WebRTC supporta solo una modalità di trasferimento per canale).
Dictionary get_peer(peer_id: int) 🔗
Restituisce un dizionario rappresentante il peer con peer_id fornito con tre chiavi. "connection" contenente il WebRTCPeerConnection a questo peer, "channels" un'array e di tre WebRTCDataChannel, e "connected" un booleano che rappresenta se la connessione peer è attualmente collegata (tutti i tre canali sono aperti).
Dictionary get_peers() 🔗
Restituisce un dizionario dove le chiavi sono gli ID dei peer e i valori sono la rappresentazione di un peer come in get_peer().
Restituisce true se il peer_id fornito è nella mappa dei peer (potrebbe non essere collegato però).
void remove_peer(peer_id: int) 🔗
Rimuovere il peer con il peer_id fornito dalla rete mesh. Se il peer era connesso, e MultiplayerPeer.peer_connected è stato emesso per esso in precedenza, allora MultiplayerPeer.peer_disconnected sarà emesso.