У меня развернут сервер, использующий веб-сокеты для связи с клиентами в режиме реального времени. Я обнаружил, что если клиент использует Safari на устройстве iOS и приложение переходит в фоновое состояние или если он переходит в спящий режим на экране, то оно разрывает соединение с веб-сокетом (прекращение любых сообщений после возвращения в Safari), но на на стороне сервера он не вызывает событие OnDisconnected.

Я нашел это только потому, что отслеживал, сколько у меня подключенных пользователей, и оно постоянно растет.

Chrome, Firefox и Edge работают на настольном ПК, как и ожидалось, и вызывают событие OnDisconnected.

Мне было интересно, видел ли кто-нибудь это раньше, пропускаю ли я настройку или есть обходной путь? До сих пор в моем методе, который отправляет данные клиентам, я проверяю все кэшированные сокеты, чтобы убедиться, что они не находятся в состоянии "Открыто", и вручную принудительно закрываю их.

0