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...
MultiplayerPeer
Успадковує: PacketPeer < RefCounted < Object
Успадковано від: ENetMultiplayerPeer, MultiplayerPeerExtension, OfflineMultiplayerPeer, WebRTCMultiplayerPeer, WebSocketMultiplayerPeer
Абстрактний клас спеціалізованих PacketPeer, що використовується MultiplayerAPI.
Опис
Керує підключенням до одного або декількох віддалених однолітків, що діють як сервер або клієнт, і призначає унікальні ідентифікатори до кожного з них. Дивись ще МультиплеерAPI.
Примітка: Протокол MultiplayerAPI - це докладна інформація про виконання і не призначене для використання не-Godot серверів. Може змінитися без повідомлення.
Примітка: При експорті до Android, переконайтеся, що ввімкнути INTERNET дозвіл на експорт Android перед експортуванням проекту або за допомогою однієї кнопки розгортання. Інакше, мережевий зв'язок будь-якого роду буде заблокований Android.
Посібники
Властивості
|
||
|
||
|
Методи
void |
close() |
void |
disconnect_peer(peer: int, force: bool = false) |
generate_unique_id() const |
|
get_connection_status() const |
|
get_packet_channel() const |
|
get_packet_mode() const |
|
get_packet_peer() const |
|
get_unique_id() const |
|
is_server_relay_supported() const |
|
void |
poll() |
void |
set_target_peer(id: int) |
Сигнали
Видається, коли підключається віддалений вузол.
Видається, коли віддалений вузол відключився.
Переліки
enum ConnectionStatus: 🔗
ConnectionStatus CONNECTION_DISCONNECTED = 0
Багатокористувацький одноранговий користувач відключено.
ConnectionStatus CONNECTION_CONNECTING = 1
Багатокористувацький користувач зараз підключається до сервера.
ConnectionStatus CONNECTION_CONNECTED = 2
Цей багатокористувацький одноранговий гравець підключений.
enum TransferMode: 🔗
TransferMode TRANSFER_MODE_UNRELIABLE = 0
Пакети не визнаються, що для втрачених пакетів не враховуються. Пакети можуть приходити в будь-яке замовлення. Потенційно швидше, ніж TRANSFER_MODE_UNRELIABLE_ORDERED. Використовуйте для некритичних даних, і завжди врахуйте, чи є питання замовлення.
TransferMode TRANSFER_MODE_UNRELIABLE_ORDERED = 1
Пакети не визнаються, що для втрачених пакетів не враховуються. Пакети одержуються в порядку, що надсилаються. Потенційно швидше, ніж TRANSFER_MODE_RELIABLE. Використовуйте для некритичних даних або даних, які будуть застарілі, якщо отримані кінці через спробу повторної дії, наприклад переміщення та позиціонування даних.
TransferMode TRANSFER_MODE_RELIABLE = 2
Пакети повинні бути отримані і повторні спроби повинні бути зроблені до моменту визнання пакетів. Пакети повинні бути отримані в порядку, щоб вони були відправлені. Найнадійніший режим передачі, але потенційно повільніше через наклад. Використовуйте для критичних даних, які повинні передаватися і прибути в порядку, наприклад, можливість, що викликається або чат повідомлення. Уважно, якщо інформація дійсно є критичною, і використовувати спаринглі.
Константи
TARGET_PEER_BROADCAST = 0 🔗
Пакети надсилаються всім підключеним вузлам.
TARGET_PEER_SERVER = 1 🔗
Пакети надсилаються віддаленому вузлу, який діє як сервер.
Описи властивостей
bool refuse_new_connections = false 🔗
Якщо true, це MultiplayerPeer відмовляється від нових підключень.
Канал використовувати для відправки пакетів. Багато мережевих API, таких як ENet і WebRTC дозволяють створювати декілька незалежних каналів, які поводяться, таким чином, як окремі з'єднання. Це означає, що надійні дані будуть тільки блокувати доставку інших пакетів на цьому каналі, і замовлення буде по відношенню до каналу, пакет буде відправлено. Використання різних каналів для надсилання ** диферентних і незалежних** оновлення стану є загальним способом оптимізації використання мережі і зменшення затримки в швидкопсованих іграх.
Примітка: Канал за замовчуванням (0) фактично працює як 3 окремих каналів (один для кожного TransferMode), так що TRANSFER_MODE_RELIABLE і TRANSFER_MODE_UNRELIABLE_ORDERED не взаємодіє один з одним за замовчуванням. Щоб дізнатися, як правильно налаштувати канали.
TransferMode transfer_mode = 2 🔗
void set_transfer_mode(value: TransferMode)
TransferMode get_transfer_mode()
Спосіб надсилання пакетів до цільового вузла. Див. метод set_target_peer().
Описи методів
void close() 🔗
Негайно закрити багатокористувацький вузол, повернувшись до стану CONNECTION_DISCONNECTED. Підключені вузли будуть відключені без випромінювання сигналу peer_disconnected.
void disconnect_peer(peer: int, force: bool = false) 🔗
Відключає вказаний peer від цього хоста. Якщо force має значення true, сигнал peer_disconnected не буде передаватися для цього вузла.
int generate_unique_id() const 🔗
Повернутися до випадково створеного цілого, який може бути використаний як мережевий унікальний ідентифікатор.
ConnectionStatus get_connection_status() const 🔗
Повертає поточний стан з'єднання.
int get_packet_channel() const 🔗
Повертає канал, через який було отримано наступний доступний пакет. Див. PacketPeer.get_available_packet_count().
TransferMode get_packet_mode() const 🔗
Повертає режим передачі, який віддалений вузол використовував для надсилання наступного доступного пакета. Див. PacketPeer.get_available_packet_count().
Повертає ідентифікатор MultiplayerPeer, який надіслав наступний доступний пакет. Див. PacketPeer.get_available_packet_count().
Повертає ідентифікатор цього MultiplayerPeer.
bool is_server_relay_supported() const 🔗
Повертає true, якщо сервер може діяти як ретранслятор у поточній конфігурації. Тобто, якщо вищий рівень MultiplayerAPI повинен сповіщати підключених клієнтів про інших однорангових вузлів і реалізувати протокол ретрансляції, щоб дозволити зв’язок між ними.
void poll() 🔗
Очікується до 1 секунди, щоб отримати новий мережевий захід.
void set_target_peer(id: int) 🔗
Встановлює однолітків, на які будуть відправлені пакети.
id може бути одним з: TARGET_PEER_BROADCAST для надсилання всіх підключених однолітків, TARGET_PEER_SERVER для надсилання на один одному серверу, дійсного ідентифікатора однолітків для надсилання цього конкретного однолітка, негативний ідентифікатор однолітків для надсилання всіх однолітків, крім цього. За замовчуванням, цільовий одноліток TARGET_PEER_BROADCAST.