🇬🇧 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.