Так вот все вышеописанное работает хорошо но до того момента как наш комп не уйдет в спящий режим, и тогда , примерно через 30 сек вебсокет соединения разрывается
По вполне понятной причине:
Вебсокет работает поверх TCP. Когда в рамках TCP-соединения не передаются никакие сообщения - оно разрывается, причём вроде аж на уровне провайдера.
Смысла держать вебсокет работающим даже когда компьютер не работает нет, как и технической возможности.
Просто учитывай это и поднимай вебсокет заново, если он вдруг разорвался.
Можно попутно ещё запросить сообщения, которые были отправлены с момента разрыва (например с даты последнего полученного сообщения)