Ваш вопрос немного сложен для разбора, но я возьму ответ.
Если вы заинтересованы в подключении клиента (браузера) WebSockets к произвольному серверу сокетов TCP, то вам может быть интереснов wsproxy , который является универсальным прокси для сокетов WebSockets to TCP.wsproxy включен в noVNC (клиент HTML5 VNC) и имеет три эталонные реализации на C, python и Node (node.js).
Если вы заинтересованы в добавлении поддержки WebSockets в конкретныйданный сервер (т. е. сервер базы данных), тогда вы можете найти этот форк libvncserver .Он поддерживает клиентов, которые говорят на WebSockets (то есть noVNC), поэтому прокси-сервер не требуется.
Основные функции прокси-сервера wsproxy были довольно просты для реализации.Самое сложное в том, что текущий используемый черновик WebSockets (v76) не определяет полезную нагрузку двоичной передачи (только UTF-8), поэтому wsproxy base64 кодирует / декодирует весь трафик в / из клиента WebSockets.Реализация соединений WebSockets в libvncserver была несколько более хитрой, потому что у libvncserver есть довольно жестко запрограммированные идеи о буферизации / кадрировании, которые нужно было обойти.
Отказ от ответственности: я отвечаю за noVNC, wsproxy и WebSocketsпатчи к libvncserver.