PacketPeer
Успадковує: RefCounted < Object
Успадковано від: ENetPacketPeer, MultiplayerPeer, PacketPeerDTLS, PacketPeerExtension, PacketPeerStream, PacketPeerUDP, WebRTCDataChannel, WebSocketPeer
Анотація та базовий клас для протоколів на основі пакетів.
Опис
Пакети Peer - анотація та базовий клас для протоколів пакетів (наприклад, UDP). Надання API для відправки та отримання пакетів як сирих, так і змінних. Це дозволяє легко перенести дані за протоколом, не маючи даних кодування, як низькорівневі байти або турбуватися про мережевий замовлення.
Примітка: При експорті до Android, переконайтеся, що ввімкнути INTERNET дозвіл на експорт Android перед експортуванням проекту або за допомогою однієї кнопки розгортання. Інакше, мережевий зв'язок будь-якого роду буде заблокований Android.
Властивості
|
Методи
get_available_packet_count() const |
|
get_packet_error() const |
|
put_packet(buffer: PackedByteArray) |
|
Описи властивостей
int encode_buffer_max_size = 8388608 🔗
Максимальний розмір буфера допускається при кодуванні Variants. Використовуйте це значення для підтримки важчих переселень пам'яті.
Метод set_var() виділяє пам'ять на стек, а використовуваний буфер автоматично зросте до найближчої потужності двох, щоб відповідати розмірам Variant. Якщо Variant є більшим, ніж код_buffer_max_size, метод буде похибуватися з @GlobalScope.ERR_OUT_OF_MEMORY.
Описи методів
int get_available_packet_count() const 🔗
Повертає кількість пакетів, які в даний час доступні в кільце-буфері.
PackedByteArray get_packet() 🔗
Отримує сирий пакет.
Error get_packet_error() const 🔗
Повертаємо стан помилки останнього пакета, отриманого (через get_packet() та get_var()).
Variant get_var(allow_objects: bool = false) 🔗
Отримує варіант. Якщо allow_objects є true, декодування об'єктів дозволено.
Внутрішнє використання такого ж механізму декодування, як методу GlobalScope.bytes_to_var().
Попередження: Десеріалізовані об'єкти можуть містити код, який отримує виконану. Не використовуйте цей параметр, якщо послідовний об'єкт виходить з ненадійних джерел, щоб уникнути загроз потенційної безпеки, таких як віддалене виконання коду.
Error put_packet(buffer: PackedByteArray) 🔗
Надіслав сирий пакет.
Error put_var(var: Variant, full_objects: bool = false) 🔗
Відправляється Variant як пакет. Якщо full_objects є true, кодування об'єктів дозволено (і може потенційно включати код).
Внутрішня, це використовує той же механізм кодування, як GlobalScope.var_to_bytes().