Как заставить Qt Websocket и QNetworkRequest (HTTP) использовать одно и то же соединение?
Возможно ли с помощью Qt обновить HTTP-соединение, которое обрабатывает обычные HTTP-запросы, к веб-сокету с тем же соединением?
Я думаю о чем-то подобном с библиотеками Poco, но все они сделаны в Qt аналогично QtWebApp.
1 ответ
Простой ответ - нет, и это в основном из-за особенностей серверной части. И Qt просто следует протоколу, доступному и предоставляемому сервером (HTTP/WebSocket), поскольку в основном это инфраструктура разработки на стороне клиента, и AFAIK не сможет выполнить то преобразование, которое вы хотите перейти от HTTP к Websocket, которые являются двумя различными протоколы. Но, конечно, теоретически это можно сделать, если оба протокола могут использовать IP-порт 80. Но это подразумевает новый уникальный сервер и новые уникальные клиентские реализации.
Мы используем как WebSocket, так и REST в нашем приложении. И WebSocket для запуска клиента сервером что-то сделать. Клиент получает "тыкать" с сервера и запускает нормальный обмен JSON на основе HTTP с сервером.
Несколько относительно ссылка: https://softwareengineering.stackexchange.com/questions/276253/mixing-rest-and-websocket-in-the-same-api