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".