Boost :: Beast Websocket双向流(C ++)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Boost :: Beast Websocket双向流(C ++)相关的知识,希望对你有一定的参考价值。

我正在研究使用Boost :: Beast websocket库来创建异步双向管道,以在服务器和客户端之间传递数据。我利用了异步示例中的一些代码(我可以在以后发布一些代码,如果有必要,现在就无法访问它)。我目前有一个类,它创建了几个运行SocketListener的线程。当客户端连接时,它会创建一个Session shared_ptr来执行异步读写功能。问题是,此会话对象只会在客户端向我发送消息时写出。我正在寻找一种实现,允许我的服务器按需写入​​连接到它的所有客户端,并监听来自这些连接的传入数据。

这可能吗?我使用错误的技术吗?我可以实现的另一种方法是拥有一个传入的websocket和传出的websocket。传入将允许客户端删除服务器的配置,并且传出将仅监视消息队列并在消息可用时执行异步写入。

谢谢!

答案

这可能吗?

我使用错误的技术吗?

没有

我可以实现的另一种方法是分别有一个传入的websocket和传出的websocket,以及No。

这不是必需的,websocket流是全双工的。您可以同时读写。

如果消息可用,传出将仅监视消息队列并执行异步写入。

这是正确的方法,但您可以在同样处理读取的Session对象中执行此操作。

这是一个连续读取的例子,也可以写全双工:https://github.com/vinniefalco/CppCon2018

以上是关于Boost :: Beast Websocket双向流(C ++)的主要内容,如果未能解决你的问题,请参考以下文章

如何正确写c++ boost beast websocket server

如何从另一个线程中断 websocket(使用 boost beast)?

Boost :: Beast Websocket双向流(C ++)

Boost Beast websocket 服务器异步接受失败,缓冲区溢出

Boost Beast 将带有字节数组的 json 发送到客户端抛出 websocket

关于 boost beast websocket api : async_close, async_write