将 Websocket 与 Poco 库连接

Moo*_*lit 5 c++ connection websocket poco-libraries

我正在尝试使用Poco C++ 库连接到Echo Test Websocket。为此,我的代码应设置 Websocket:

HTTPClientSession cs("echo.websocket.org");
HTTPRequest request(HTTPRequest::HTTP_GET, "/ws");
HTTPResponse response;

WebSocket* m_psock = new WebSocket(cs, request, response);
m_psock->close(); //close immidiately
Run Code Online (Sandbox Code Playgroud)

但是它不起作用:我收到如下错误消息:

Poco::Exception: WebSocket Exception: Cannot upgrade to WebSocket connection: Not Found
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?

Kev*_*son 3

“Not Found”错误是 HTTP 服务器返回的标准 HTTP 404 Not Found。这通常意味着您请求的资源不存在。

我通过将资源从更改为来使您的代码正常"/ws"工作"/"

HTTPRequest request(HTTPRequest::HTTP_GET, "/");
Run Code Online (Sandbox Code Playgroud)

并添加以下行

request.set("origin", "http://www.websocket.org");
Run Code Online (Sandbox Code Playgroud)

在创建新的WebSocket. 我认为这是许多(或所有?)WebSocket 服务器所期望的标头对。