Skip to content

🇬🇧 English | 🇺🇦 Українська

← До змісту

Примітки до випуску

Коротко про кожен випуск: що з'явилося, що виправлено, на що звернути увагу під час оновлення. Найновіший випуск — угорі.


2.1

Випуск про надійність і двійкові дані. Під'єднання й перепідключення стали стабільнішими, повідомлення будь-якого вмісту — від кирилиці до довільних байтів — передаються без спотворень, а великі повідомлення надходять у сотні разів швидше.

Нове

  • Двійкові дані. Надсилайте й отримуйте масиви байтів (TArray<uint8>) з Blueprint і C++:
  • Publish Bytes і Request Bytes Async — у клієнті, підсистемі й компоненті;
  • Publish Bytes у JetStream, зокрема з Message ID, заголовками й очікуваною послідовністю;
  • KV Put Bytes, KV Put Bytes With Revision і KV Create Bytes у сховищі ключ-значення.

Отримані байти лежать у полі Payload повідомлення та в полі ValueBytes запису KV. - Ноди String To UTF-8 Bytes і UTF-8 Bytes To String для перетворення тексту на байти й назад. - Адресу сервера можна вказувати іменем хоста (nats.example.com), а не лише IP-адресою. - Get Connection State повідомляє, чи клієнт відключений, під'єднується чи вже під'єднаний. - Окрема сторінка Editor Preferences → Plugins → NATS Messaging Client (Editor Only) — облікові дані для тестування в редакторі, які не потрапляють у DefaultGame.ini й у зібрану гру.

Виправлено

  • Помилки роботи з потоками й пам'яттю, через які під час запуску та зупинки гри в редакторі, зокрема під налагоджувачем, могли виникати виключення.
  • Текст із кирилицею та іншими не-ASCII символами порушував обмін даними із сервером.
  • Нульові байти в даних обрізали повідомлення.
  • Після перезапуску сервера клієнт не помічав розриву, тож автоматичне перепідключення не спрацьовувало.
  • Перепідключення йшло на адресу з Project Settings, навіть якщо спершу під'єднувалися до іншої.
  • Підсистема ігнорувала налаштування bAutoReconnect і ReconnectIntervalSeconds.
  • Повторний виклик Connect під час під'єднання міг пошкодити пам'ять.
  • Disconnect з обробника повідомлення міг назавжди заблокувати гру.
  • Паролі й токени зі спецсимволами (", \) не проходили авторизацію.
  • KV Put With Revision не перевіряв ревізію.
  • KV Create не гарантував, що ключ створить лише один клієнт.
  • KV Watch для всіх ключів бакета не отримував оновлень.
  • Pull Messages міг повертати порожні службові повідомлення сервера замість справжніх.
  • Кожна публікація в JetStream залишала на сервері зайву підписку.
  • Якщо плагін установлено з Fab, під час кожного під'єднання в журнал потрапляла помилка.
  • Кнопки «Test Connection» і «Test JetStream» у налаштуваннях плагіна працюють надійніше.

Продуктивність

  • Прийом даних пришвидшено: повідомлення на 900 КБ надходить за 0,03 с замість 23 с.
  • Повідомлення доставляються щокадру, а не раз на 100 мс.

Відомі обмеження

  • Після KV Delete у бакеті з історією (History більше 1) KV Get повертає попереднє значення ключа замість «ключ не знайдено».
  • TLS-з'єднання не підтримуються.

Оновлення

  • Проєкти з кодом на C++ потрібно перезібрати.
  • Події On Disconnected і On Error тепер завжди надходять в ігровому потоці.
  • Якщо в Project Settings вимкнено bAutoReconnect, підсистема більше не перепідключається сама.
  • KV Put With Revision повертає помилку, якщо ревізія ключа вже змінилася, — так, як описано в документації. Якщо ваш код покладався на те, що значення записується завжди, використовуйте KV Put.

← До змісту