Я использую сервер сокетов Iot с витой. Позже я обнаружил, что если устройство сбрасывается аппаратно, TCP-соединение все еще сохраняется на стороне сервера. Я полагаю, что у TCP-соединения нет времени на разрыв соединения, так как микроконтроллер был сброшен.
Поскольку я разрешаю только одно устройство одному соединению, если TCP-соединение обрывается, и сервер не получил запрос на отключение, и новый запрос на соединение будет отклонен.
Да, я определяю таймер таймаута в витой. Но мы думаем, что таймер тайм-аута слишком длинный, около 5 минут. После ожидания в течение 5 минут устройство может повторно подключиться к серверу.
Есть идеи для решения такой проблемы? Пока что я добавляю команду пользователя через web api, чтобы вызвать команду отключения на сервере сокетов и разрешить новое соединение.
Но есть идеи лучше? Пинг обратно?