Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
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.