Предоставление сервера WebSockets в приложении Qt

Я создал QTcpServer на порту 1024. Я хочу подключиться к нему из веб-сокета, используя URL-адрес ws://localhost:1024, но он не подключается. Разве мы не можем подключить веб-сокеты к обычным сокетам TCP-сервера?


person user1608693    schedule 18.08.2012    source источник
comment
вы можете использовать websockify, чтобы обернуть свой старый простой TCP-сервер   -  person Janus Troelsen    schedule 24.12.2012


Ответы (3)


Веб-сокеты не являются чистыми сокетами TCP. Под капотом они используют собственный протокол, построенный поверх HTTP. Итак, наслоение выглядит так: IP > TCP > HTTP > WebSocket.

Поэтому, чтобы предоставить сервер веб-сокетов в Qt, вам нужна реализация протокола веб-сокетов. Ознакомьтесь с QtWebsocket для этой реализации.

person Ihor Kaharlichenko    schedule 19.08.2012

Немного неуместная информация. Они НЕ «построены» на HTTP, WebSocket намного ближе к уровню TCP. Однако они требуют рукопожатия сервера обновления через HTTP-запрос.

ссылка на RFC — http://tools.ietf.org/html/rfc6455#section- 1.7

person Erik    schedule 17.12.2013

Как указал Игорь, WebSocket начинается с HTTP-запроса, который затем обновляется до WebSocket. Вы можете взглянуть на QtWebSockets. Он является частью игровой площадки Qt и может использоваться как для клиентских, так и для серверных реализаций.

person Kurt Pattyn    schedule 10.08.2013