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.

ENetMultiplayerPeer

Hérite de : MultiplayerPeer < PacketPeer < RefCounted < Object

Une implémentation de MultiplayerPeer utilisant la bibliothèque ENet.

Description

Une implémentation de MultiplayerPeer qui devrait être passée au MultiplayerAPI.multiplayer_peer après avoir été initialisé en tant que client, serveur ou maille. Les événements peuvent ensuite être gérés en se connectant aux signaux de MultiplayerAPI. Voir ENetConnection pour plus d'information sur le wrapper de la bibliothèque ENet.

Note : ENet utilise seulement UDP, et non TCP. Lors du branchement du port serveur pour rendre votre serveur accessible sur l'Internet public, vous n'avez besoin que d'envoyer le port serveur en UDP. Vous pouvez utiliser la classe UPNP pour essayer d'envoyer automatiquement le port serveur dès le démarrage du serveur.

Tutoriels

Propriétés

ENetConnection

host

Méthodes

Error

add_mesh_peer(peer_id: int, host: ENetConnection)

Error

create_client(address: String, port: int, channel_count: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0, local_port: int = 0)

Error

create_mesh(unique_id: int)

Error

create_server(port: int, max_clients: int = 32, max_channels: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0)

ENetPacketPeer

get_peer(id: int) const

void

set_bind_ip(ip: String)


Descriptions des propriétés

ENetConnection host 🔗

The underlying ENetConnection created after create_client() and create_server().


Descriptions des méthodes

Error add_mesh_peer(peer_id: int, host: ENetConnection) 🔗

Add a new remote peer with the given peer_id connected to the given host.

Note: The host must have exactly one peer in the ENetPacketPeer.STATE_CONNECTED state.


Error create_client(address: String, port: int, channel_count: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0, local_port: int = 0) 🔗

Créer un client qui se connecte à un serveur à l'address en utilisant le port spécifié. L'adresse donnée doit être soit un nom de domaine entièrement qualifié (par ex. "www.example.com") soit une adresse IP en format IPv4 ou IPv6 (par ex. "192.168.1.1"). Le port est le port que le serveur écoute. Le paramètre channel_count peut être utilisé pour spécifier le nombre de canaux ENet alloués à la connexion. Les paramètres in_bandwidth et out_bandwidth peuvent être utilisés pour limiter la bande passante entrante et sortante au nombre donné d'octets par seconde. Le défaut de 0 signifie bande passante illimitée. Notez que ENet perdra stratégiquement des paquets sur des côtés spécifiques d'une connexion entre les pairs pour s'assurer que la bande passante du pair n'est pas dépassée. Les paramètres de bande passante déterminent également la taille de la fenêtre d'une connexion qui limite la quantité de paquets fiables qui peuvent être en transit à tout moment donné. Renvoie @GlobalScope.OK si un client a été créé, @GlobalScope.ERR_ALREADY_IN_USE si cette instance ENetMultiplayerPeer a déjà une connexion ouverte (dans quel cas vous devez appeler MultiplayerPeer.close() d'abord) ou @GlobalScope.ERR_CANT_CREATE si le client ne peut pas être créé. Si local_port est spécifié, le client écoutera également le port donné, cela est utile pour certaines techniques de traversée NAT.


Error create_mesh(unique_id: int) 🔗

Initialize this MultiplayerPeer in mesh mode. The provided unique_id will be used as the local peer network unique ID once assigned as the MultiplayerAPI.multiplayer_peer. In the mesh configuration you will need to set up each new peer manually using ENetConnection before calling add_mesh_peer(). While this technique is more advanced, it allows for better control over the connection process (e.g. when dealing with NAT punch-through) and for better distribution of the network load (which would otherwise be more taxing on the server).


Error create_server(port: int, max_clients: int = 32, max_channels: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0) 🔗

Créer un serveur qui écoute les connexions via port. Le port doit être un port disponible et inutilisé entre 0 et 65535. Notez que les ports inférieurs à 1024 sont réservés et peuvent nécessiter des autorisations élevées en fonction de la plateforme. Pour modifier l'interface que le serveur écoute, utilisez set_bind_ip(). L'IP par défaut est le joker "*", qui écoute toutes les interfaces disponibles. max_clients est le nombre maximum de clients autorisés en même temps, tout nombre jusqu'à 4095 peut être utilisé, même si le nombre possible de clients simultanés peut être beaucoup plus faible et dépend de l'application. Pour plus de détails sur les paramètres de bande passante, voir create_client(). Retourne @GlobalScope.OK si un serveur a été créé, @GlobalScope.ERR_ALREADY_IN_USE si cette instance de ENetMultiplayerPeer a déjà une connexion ouverte (dans cecas vous devez appeler MultiplayerPeer.close() d'abord) ou @GlobalScope.ERR_CANT_CREATE si le serveur ne peut pas être créé.


ENetPacketPeer get_peer(id: int) const 🔗

Retourne le ENetPacketPeer associé au id donné.


void set_bind_ip(ip: String) 🔗

L'adresse IP utilisée lors de la création d'un serveur. Ceci est défini le joker "*" par défaut, qui se connecte à toutes les interfaces disponibles. L'adresse donnée doit être au format IPv4 ou IPv6, par exemple : "192.168.1.1".