我正在使用uWebSockets 0.15.x版接受和管理服务器上的Web套接字连接。我有一个线程调用uWS :: TemplatedApp :: run来处理此问题。
我需要将数据从另一个线程发送到所有打开的Web套接字。我的理解是uWebSockets不是线程安全的。推荐的方法是什么?
(用于0.14.x的uWebSockets用户手册讨论了uS :: Async,但是该类不在0.15.x中。从当前文档中尚不清楚等效项是什么。)
答案 0 :(得分:0)
这可以使用以下方法完成:
在建议的用例中,“服务器”线程可以调用uWS :: Loop :: defaultLoop并提供指向其他线程的指针。其他线程可以调用uWS :: Loop :: defer在“服务器”线程中运行代码,从而在lambda中捕获所需的数据。线程可以共享套接字列表,只要它是多线程安全的,或者只能从“服务器”线程中运行的代码访问即可。