Перейти к содержимому

NetworkInfo

NetworkInfo предоставляет текущую статистику сетевого соединения. В server.lua Reflex-модуля глобальный объект NetworkInfo равен nil.

Клиентская сетевая система собирает статистику транспорта, интерполяции и времени тиков, а свойства возвращают текущий измеренный снимок. API ничего не отправляет и не меняет параметры соединения.

Эти показатели относятся ко всему игровому соединению клиента, а не только к таблицам, отправленным через Network. Значения обновляются со временем, поэтому для графика их нужно периодически читать заново.

print("Ping: " .. NetworkInfo.Ping .. " ms")
print("Packet loss: " .. NetworkInfo.InPacketLossPercent .. "%")

Все свойства доступны только для чтения.

Свойство Тип Доступ Единица Описание
InKBps number get КБ/с Скорость входящего трафика.
InPacketLossPercent number get % Потери входящих пакетов.
InterpolationDelayMs number get мс Текущая задержка интерполяции.
OutKBps number get КБ/с Скорость исходящего трафика.
OutPacketLossPercent number get % Потери исходящих пакетов.
Ping integer get мс Усреднённый ping по последним измерениям.
RttSeconds number get с Текущее round-trip time.
ServerTickTimeMs number get мс Время обработки серверного сетевого тика.
TickTimeMs number get мс Время обработки клиентского сетевого тика.

Ping и RttSeconds не являются одной и той же выборкой в разных единицах. Во время проверки:

  • Ping был равен 44 ms;
  • RttSeconds × 1000 был равен примерно 60.88 ms.

Используйте Ping для готового усреднённого значения, а RttSeconds — когда нужен текущий RTT в секундах. Не рассчитывайте точное равенство между ними.

Метрики меняются во время соединения. Читайте их в момент обновления интерфейса или диагностики:

Scheduler:OnFrame(function()
local ping = NetworkInfo.Ping
-- Обновление интерфейса
end)

Не пытайтесь присваивать значения свойствам: все девять setter-ов отклоняются Lua access error.