使用Web服务实现服务器到客户端回调(事件)的好方法是什么?
我们已经有一个在Apache上运行的mod_perl公开的基于SOAP的API,但它是服务器的单向客户端。我们需要通知其他客户端服务器上的某些更改。
使这项工作的好方法是什么? perl的可用模块?
我们想到的一件事是制作一个长时间运行的Web请求,最终会在事件发生时做出响应,但如果连接了许多客户端,这似乎会保持太多的mod_perl进程在运行。
答案 0 :(得分:3)
一种方式是你提到的,长期运行的民意调查。
另一个是websockets。有许多Perl框架能够处理websockets请求,其中一个是Mojolicious。
有关示例,请参阅Mojolicious::Lite#WebSockets处的文档。
我建议在你的情况下运行websockets webapp与mod_perl服务器分开,并且“只是”使用Apache来反向代理mojolicious应用程序。
答案 1 :(得分:0)
你真的尝试过第一种方法吗?这将是多少个最大并发客户端? apache应该可以管理几十个。只是猜测。
您是否尝试过这种低技术方法"Watching long processes through CGI",或者它是您想要首先摆脱的?