На столько, на сколько часто этом может происходить в любом TCP соединении.
https://ru.wikipedia.org/wiki/TCP
Хотя протокол осуществляет проверку контрольной суммы по каждому сегменту, используемый алгоритм считается слабым [1]. В общем случае распределенным сетевым приложениям рекомендуется использовать дополнительные программные средства для гарантирования целостности передаваемой информации[2].
Т.о. в вашем случае вам следует дополнительно реализовать свой механизм контроля доставки сообщений в рамках используемого вами протокола поверх WS или поверх самого протокола. Так же имеет смысл использовать пульс - периодический пинг клиента/сервера. Например, в случае плохой мобильной связи соединение может оборваться, но и клиент и сервер будут считать, что оно есть и пытаться отправить или ожидать данные. При этом, теоретически и согласно всем нормам уже на уровне ОС сокет должен закрыться через несколько секунд, но тут вступает в дело такой фактор как "опции создания сокета" и, особенно, "таймаут сокета" - разные разработчики могут использовать разные опции при запуске сервера/клиента и как результат в разных ОС это поведение может отличаться и сокет может зависнуть, а ОС его сама не закроет. Так что тут поможет только пульс - в WS пинг часть протокола.