在WT应用程序中为所有WApplications使用单个WSocketNotifier

时间:2011-06-21 14:45:54

标签: c++ wt

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

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

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

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

我现在看到的唯一解决方案但不是很优雅的是拥有静态WSocketNotifier并在会话死亡时替换它...

2 个答案:

答案 0 :(得分:0)

我对WT一无所知,但是你是否可以为了处理套接字通知创建一个“虚拟”会话,并从tehre转发到真正的会话?或者滚动会话可以订阅的自己的通知程序?

答案 1 :(得分:0)

在你的main()中,创建一个处理套接字数据的线程。使用select,阻塞读取,...然后使用WServer :: post()通知您的会话数据到达套接字。