аккуратный бит кода.Но вы правы, WebSockets решит эти проблемы.Я думаю, что здесь есть две проблемы:
1) Ваш браузер, веб-сервер или промежуточный прокси-сервер может завершить соединение через некоторое время, в режиме ожидания или нет.Ваше предложение о периодической отправке пустых данных по таймеру поможет, но не является гарантией.
2) Насколько я знаю, нет встроенного способа определить, работает ли одно из этих соединений и когда оно работает.Чтобы ваш список соединений не увеличивался, вам нужно будет отслеживать, когда каждое соединение использовалось в последний раз (возможно, клиент должен время от времени пинговать, и вы бы сохранили эту дату и время). Затем добавьте периодический таймер для проверки.for и kill «устаревшие» соединения.
Более простой, хотя и более уродливый вариант, - сохранить время создания каждого соединения и завершить его через n минут.Клиент должен быть достаточно умен, чтобы переподключиться.
Я знаю, что это убирает простоту кода.Как бы ни был хорош пример, я думаю, что это лучший кандидат для WebSockets.