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.

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

Error

add_peer(peer: WebRTCPeerConnection, peer_id: int, unreliable_lifetime: int = 1)

Error

create_client(peer_id: int, channels_config: Array = [])

Error

create_mesh(peer_id: int, channels_config: Array = [])

Error

create_server(channels_config: Array = [])

Dictionary

get_peer(peer_id: int)

Dictionary

get_peers()

bool

has_peer(peer_id: int)

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().


bool has_peer(peer_id: int) 🔗

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.