c++ - 将 Websocket 与 Poco 库连接

标签 c++ connection websocket poco-libraries

我正在尝试连接到 Echo Test Websocket使用Poco C++ 库。 为此,我的代码应设置 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

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

Poco::Exception: WebSocket Exception: Cannot upgrade to WebSocket connection: Not Found

有人可以帮忙吗?

最佳答案

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

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

HTTPRequest request(HTTPRequest::HTTP_GET, "/");

并添加以下行

request.set("origin", "http://www.websocket.org");

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

关于c++ - 将 Websocket 与 Poco 库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18532388/

相关文章:

c++ - std::list 与 std::map 属性?

android - 强制互联网连接尝试?

perl - 检查到 websocket 的连接是否仍然使用 Net::Async::WebSocket 打开

sockets - 使用 SSL/TLS 比自己处理加密有什么优势

websocket - 如何通过 websockets 连接到 RSK 公共(public)节点?

C++ - 计算文件中元音的数量

c++ - 为什么 gcc 和 clang 为函数模板的实例化生成不同的符号名称?

c++ - 通过仅包含声明来解决缺少定义错误

java - twitter4j API - 连接被拒绝

java - Tomcat JDBC 连接池 VS c3p0 连接池