小编Laz*_*aza的帖子

从使用 emscripten 编译的 c++ 连接 websocket 时出现问题

尝试使用用emscripten编译的c++代码连接到websocket(poco-1.9.0示例\WebSocketServer)。使用编译的 boost 1.69 和常见示例之一连接到套接字。

boost::asio::ssl::context ctxt(context::sslv23_client); 
ctxt.set_verify_mode(boost::asio::ssl::verify_none);

boost::asio::io_service svc;
tcp::resolver resolver(svc);
tcp::resolver::query query("127.0.0.1", "9980", 
    boost::asio::ip::resolver_query_base::numeric_service);

tcp::resolver::iterator i = resolver.resolve(query, ec);

boost::asio::ssl::stream<tcp::socket> s(svc, ctxt);
s.lowest_layer().connect(*i, ec); 
s.handshake(boost::asio::ssl::stream<tcp::socket>::client, ec);
Run Code Online (Sandbox Code Playgroud)

服务器输出如下

Request from 127.0.0.1:58152: GET / HTTP/1.1
Host: 127.0.0.1:9980
Connection: Upgrade
Pragma: no-cache
Cache-Control: no-cache
Upgrade: websocket
Origin: http://127.0.0.1:8887
Sec-WebSocket-Version: 13
Sec-WebSocket-Protocol: binary
WebSocket connection established.
Frame received (length=0, flags=0x0).
WebSocket connection closed.
Run Code Online (Sandbox Code Playgroud)

但是,此代码在握手后挂起。可以这样使用还是需要使用 asio 的异步调用?

另外,如果您知道任何类似的例子,请分享。

c++ boost emscripten webassembly

3
推荐指数
1
解决办法
3827
查看次数

标签 统计

boost ×1

c++ ×1

emscripten ×1

webassembly ×1