有什么方法可以订阅和收听 boost beast websocket 中的提要吗?

问题描述

我使用的是来自 boost beast documentation for async websocket client 的示例。发送一些命令来订阅然后收听提要,直到手动终止(最好使用其他功能或其他功能

不应用标准示例,因为它不提供响应或不提供永久提要。

需要访问 Poloniex Websocket API 作为参考。

有没有永久收听提要的例子?

解决方法

我们的想法是不要停止“倾听”(而倾听实际上只是意味着阅读)。

在同步代码中,您只需循环读取操作。

在异步代码中,您将其设为链。 Asio 中的 echo 示例显示了这一点(以多种方式)。

在此 async websocket example 中,您将更改 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,例如

    // Read a message into our buffer
    ws_.async_read(
        buffer_,beast::bind_front_handler(
            &session::on_read,shared_from_this()));

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...