从POCO HTTPRequestHandler访问其他线程或数据

时间:2015-07-15 04:59:48

标签: c++ multithreading websocket poco-libraries

我有一个C ++应用程序,可以读取各种传感器,然后根据需要对它们进行操作。目前,传感器在自己的线程中运行,并且为其值设置了get / set方法。

我正在尝试使用POCO库集成一个Web套接字服务器来显示传感器的状态。

如何将传感器信息传入HTTPRequestHandler?

我应该使用POCO :: Application类并定义传感器和放大器吗?服务器作为子系统?我应该采取另一种方法吗?

1 个答案:

答案 0 :(得分:0)

了解如何实现docs中的WebEventService - 使用Poco :: Net :: HTTPServer,WebSocket和Poco :: NotificationQueue。

设计"简而言之"是一个发布/订阅模式,客户端订阅通知并通过WebSocket接收它们;还支持macchina.io(使用Poco事件)。在订阅时启动了一个短生命线程(in-process subscriptions/notifications),其余的通信是通过WebSocket HTTP handler功能实现的,因此性能和可扩展性相当不错(尽管有改进的余地,具体取决于在目标平台上。)

您可以考虑使用macchina.io本身(Apache许可证) - 它基于POCO / reactor-like并定位您拥有的应用程序类型。 WebEvent功能将成为1.7.0版本OSP的一部分(今年9月发布)。