每个线程有一个事件循环。然后我让每个人都使用so_reuseport监听端口。一切似乎都很正常。我没有尝试从另一个线程的连接执行setUserData/getUserData。session_allocate(userid, token); // this should allocate it, and return a pointer from the heap
ws->setUserData我更喜欢使用我自己的带锁的map,但推荐的方式是使用setUserData&
事实上,由于Redis频道订阅需要自己的事件循环(根据),而且对于uWebSockets应用程序(参见)显然也是如此,所以我最终会有两个事件循环。我的问题是,我不知道如何正确地运行这两个循环。我试着在两个不同的线程上运行它们,如果它们完全独立。但是,由于我想向所有web套接字客户端广播即将到来的Redis消息,我需要红宝石线程中的uWebSockets应用实例(参见)来广播它:
Subscriber sub = redis->subscriberapp->publish("broadcast"