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 服务器异步接受失败,缓冲区溢出