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