Kryonet лимит идентификатора соединения?
Я использую kryonet для моего проекта LibGDX. Каждый раз, когда клиент подключается к серверу, создается новый идентификатор подключения. Например. Клиент 1: ID 1. Клиент 2: ID 2.
Когда клиент повторно подключается, счетчик продолжает работать, он, похоже, не использует более старые идентификаторы. Например. Клиент 1 переподключается: ID 3.
Через некоторое время крионет сбрасывает счетчик? Или есть ли способ сбросить счетчик? Я беспокоюсь о проблемах после того, как мой сервер работает некоторое время.
1 ответ
Я решил свою собственную проблему, но я оставлю это здесь, если кому-то будет интересно.
Я искал источник Kryonet и нашел это:
int id = nextConnectionID++;
if (nextConnectionID == -1) nextConnectionID = 1;
Когда это значение достигает максимального значения, оно переходит на минимальное значение. Ссылка: /questions/32178119/chto-proishodit-kogda-vyi-uvelichivaete-tseloe-chislo-sverh-ego-maksimalnogo-znacheniya/32178142#32178142.
Я думаю, никогда не будет проблем.
РЕДАКТИРОВАТЬ: Kryonet использует -1 в качестве идентификатора, когда соединение никогда не было установлено. Если nextConnectionID считает максимальное значение до 32 битов, затем переходит на минимальное значение и снова считает до 0, в какой-то момент он пройдет -1. Это будет проблемой для одного соединения. Я еще не нашел проблему с отрицательным идентификатором.