如何在 boost::beast 上继续使用 websocket?

how to keep on websocket on boost::beast?

我参考了 here 关于 boost::beast websocket-async 的文档。

我删除了 on_read 功能上的 "ws_.async_close(websocket::close_code::normal..." 以避免断开连接。

但是 beast websocket 因结束 on_read 而断开连接。

std::make_shared<session>(ios)->run(host, port, text);
ios.run(); // I want to keep running it until explicit calling close.

替换代码

    // Close the WebSocket connection
    ws_.async_close(websocket::close_code::normal,
        std::bind(
            &session::on_close,
            shared_from_this(),
            std::placeholders::_1));

符合你想要的逻辑。你想要发生什么?你想阅读更多吗?然后像上面那样再读一遍:

    // Read a message into our buffer