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...
ENetMultiplayerPeer
Успадковує: MultiplayerPeer < PacketPeer < RefCounted < Object
Мультиплеер Використання ` Бібліотека ENet <http://enet.bespin.org/index.html>`__.
Опис
Мультиплеер Після ініціалізації як клієнт, сервер або сітка. Заяви можуть бути використані при підключенні до сигналів MultiplayerAPI. Див. ENetConnection для отримання додаткової інформації про обгортку бібліотеки ENet.
Примітка: ENet використовує UDP, не TCP. При переадресації серверного порту, щоб зробити сервер доступним на публічному інтернеті, вам потрібно переадресувати серверний порт в UDP. Ви можете використовувати клас UPNP, щоб спробувати переадресувати порт сервера автоматично при запуску сервера.
Посібники
Властивості
Методи
add_mesh_peer(peer_id: int, host: ENetConnection) |
|
create_client(address: String, port: int, channel_count: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0, local_port: int = 0) |
|
create_mesh(unique_id: int) |
|
create_server(port: int, max_clients: int = 32, max_channels: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0) |
|
void |
set_bind_ip(ip: String) |
Описи властивостей
ENetConnection host 🔗
ENetConnection get_host()
Базовий ENetConnection, створений після create_client() та create_server().
Описи методів
Error add_mesh_peer(peer_id: int, host: ENetConnection) 🔗
Додайте новий віддалений одноліток з заданим peer_id, підключений до даної host.
Примітка: The host повинен мати рівно один одноліток в ENetPacketPeer.STATE_CONNECTED держава.
Error create_client(address: String, port: int, channel_count: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0, local_port: int = 0) 🔗
Створіть клієнт, який підключений до сервера за допомогою вказаного port. Дана адреса повинна бути або повністю кваліфікованою доменною назвою (наприклад, "www.example.com") або IP-адресою в форматі IPv4 або IPv6 (наприклад, "192.168.1.1"). port є портом, який прослуховує сервер. Параметри параметра Channel_count можна використовувати для визначення кількості каналів ENet, виділених для підключення. Параметри in_bandwidth та out_width можуть використовуватися для обмеження пропускної здатності та пропускної здатності до даної кількості байтів на секунду. За замовчуванням 0 означає необмежену пропускну здатність. Зауважте, що ENet буде стратегічно скидати пакети з конкретних сторін з'єднання між однолітками, щоб забезпечити пропускну здатність однолітків не переповнений. Параметри смуги також визначають розмір вікна з'єднання, яка обмежує кількість надійних пакетів, які можуть бути в будь-який час. Повернення @GlobalScope.OK якщо клієнт був створений, @GlobalScope.ERR_ALREADY_IN_USE, якщо це ENetMultiplayerPeer екземпляр вже має відкритий зв'язок (в якому випадку потрібно викликати MultiplayerPeer.close() first) або @GlobalScope.ERR_CANT_CREATE якщо клієнт не може бути створений. Якщо вказано локальну_порт, клієнт також послухає наданий порт; це корисно для деяких траверсальних технік NAT.
Error create_mesh(unique_id: int) 🔗
Встановити цей MultiplayerPeer в режимі сітки. Надані unique_id будуть використовуватися як локальна мережа одностороннього зв'язку, яка була призначена як MultiplayerAPI.multiplayer_peer. У сітчастій конфігурації потрібно налаштувати кожен новий одноліток вручну за допомогою ENetConnection перед викликом add_mesh_peer(). В той час як ця техніка є більш розширеною, вона дозволяє краще контролювати процес з'єднання (наприклад, при роботі з пропуском NAT) і для кращого розподілу мережевого навантаження (що інакше буде більш податковим на сервер).
Error create_server(port: int, max_clients: int = 32, max_channels: int = 0, in_bandwidth: int = 0, out_bandwidth: int = 0) 🔗
Створіть сервер, який буде слухати з'єднання через port. Порт має бути доступним, невикористаним портом у діапазоні від 0 до 65535. Зверніть увагу, що порти нижче 1024 є привілейованими і можуть вимагати підвищених дозволів залежно від платформи. Щоб змінити інтерфейс, який слухає сервер, використовуйте set_bind_ip(). За замовчуванням IP-адресою є шаблон "*", який прослуховує всі доступні інтерфейси. Параметр max_clients - це максимальна кількість клієнтів, яка дозволена одночасно, можна використовувати будь-яке число до 4095, хоча досяжна кількість одночасних клієнтів може бути значно меншою і залежить від програми. Для отримання додаткової інформації про параметри пропускної здатності дивіться create_client(). Повертає @GlobalScope.OK, якщо сервер було створено, @GlobalScope.ERR_ALREADY_IN_USE, якщо цей екземпляр ENetMultiplayerPeer вже має відкрите з'єднання (у цьому випадку потрібно спочатку викликати MultiplayerPeer.close()) або @GlobalScope.ERR_CANT_CREATE, якщо сервер не вдалося створити.
ENetPacketPeer get_peer(id: int) const 🔗
Повернення ENetPacketPeer, пов'язаної з даним id.
void set_bind_ip(ip: String) 🔗
ІП використовується при створенні сервера. Це встановлюється на дикихкартах "*" за замовчуванням, який зв'язується з усіма доступними інтерфейсами. Заданий IP потрібно бути в форматі IPv4 або IPv6, наприклад: "192.168.1.1".