Соединение WebSocket теоретически может длиться вечно. Предполагая, что конечные точки остаются активными, одной из распространенных причин, по которым долгоживущие TCP-соединения в конечном итоге заканчиваются, является неактивность. У WebSockets есть механизм пинг-понга , который, помимо прочего, может избежать закрытия «умными» сетевыми маршрутизаторами, которые часто имеют время бездействия в несколько часов. Но если ваше приложение активно отправляет данные (в любом направлении) хотя бы раз в час, этого вполне достаточно.
Тем не менее, "навсегда" вряд ли будет достигнуто на практике, потому что TCP-соединения в большинстве сетей в конечном итоге прерываются из-за какого-либо сбоя. Вам понадобится интеллектуальная логика переподключения, если важна надежность.