对WT应用程序中的所有WApplications使用单个WSocketNotificationer

using a single WSocketNotifier for all WApplications in an WT app

本文关键字:WApplications 单个 WSocketNotificationer WT 应用程序      更新时间:2023-10-16

我正在尝试使用WT构建一个应用程序,该应用程序一端必须通过套接字与其他软件通信,另一端通知每个打开的会话(WApplications)。

问题是,我可以使用WSocketNotificationer来通知socked上的新事件,但WSocketotifier链接到特定会话。在它的构造函数中:

sessionId_(WApplication::instance()->sessionId()),

这是一个问题,因为我只有一个套接字,而不是每个会话一个。因此,我觉得WSocketNotificationer应该附加到一些更通用的实体,而不是链接到特定的会话。有办法做到这一点吗?

目前我看到的唯一解决方案是有一个静态WSocketNotificationer,并在会话终止时将其替换。。。

我对WT一无所知,但你能创建一个"伪"会话来处理套接字通知,并从tehre转发到真正的会话吗?或者推出您自己的会话可以订阅的通知程序?

在main()中,创建一个线程来处理套接字中的数据。使用select、blocking read。。。然后使用WServer::post()通知会话数据已到达套接字。