Предоставление сервера WebSockets в приложении Qt
Я создал QTcpServer
на порт 1024. Я хочу подключиться к нему из веб-сокета с помощью URL ws://localhost:1024
, но это не связано. Разве мы не можем подключить веб-сокеты к обычным сокетам TCP-сервера?
3 ответа
Веб-сокеты не являются чистыми TCP- сокетами. Под капотом они используют собственный протокол, который построен на основе HTTP. Итак, наслаивание выглядит так: IP > TCP > HTTP > WebSocket
,
Поэтому для предоставления сервера веб-сокетов в Qt вам нужна реализация протокола веб-сокетов. Проверьте QtWebsocket для этой реализации.
Немного непристойная информация. Они НЕ "основаны" на HTTP, WebSocket гораздо ближе к уровню TCP. Однако они требуют обновления сервера через HTTP-запрос.
ссылка на RFC - http://tools.ietf.org/html/rfc6455
Как указал Игорь, WebSocket начинается с HTTP-запроса, который затем обновляется до WebSocket. Вы можете взглянуть на QtWebSockets. Он является частью игровой площадки Qt и может использоваться как для реализации клиента, так и для сервера.