我正在使用来自boost beast 文档的示例用于异步 websocket 客户端。发送一些命令来订阅然后收听提要,直到它被手动终止(最好使用其他功能或其他)
不应用标准示例,因为它要么没有响应,要么没有提供永久提要。
需要访问 Poloniex Websocket API 作为参考。
有没有永久收听饲料的例子?
我正在使用来自boost beast 文档的示例用于异步 websocket 客户端。发送一些命令来订阅然后收听提要,直到它被手动终止(最好使用其他功能或其他)
不应用标准示例,因为它要么没有响应,要么没有提供永久提要。
需要访问 Poloniex Websocket API 作为参考。
有没有永久收听饲料的例子?
这个想法是不要停止“听”(听你真的只是意味着阅读)。
在同步代码中,您只需循环读取操作。
在异步代码中,您将其设为链。Asio 中的 echo 示例显示了这一点(以多种方式)。
在这个异步 websocket 示例中,您将更改on_read
完成处理程序
void
on_read(
beast::error_code ec,
std::size_t bytes_transferred)
{
boost::ignore_unused(bytes_transferred);
if(ec)
return fail(ec, "read");
// Close the WebSocket connection
ws_.async_close(websocket::close_code::normal,
beast::bind_front_handler(
&session::on_close,
shared_from_this()));
}
async_close
用更多async_read
的 s代替
// Read a message into our buffer
ws_.async_read(
buffer_,
beast::bind_front_handler(
&session::on_read,
shared_from_this()));