我正在寻找通过长轮询或其他标准方式实现的某种类似于 HTTP 推送的功能,添加到在 Apache 之上使用 Perl 构建的页面。
有没有办法在不设置单独的服务器(如 Meteor 或 Stardust)的情况下做到这一点?是否有可以帮助处理服务器代码的模块?除了长轮询还有其他方法吗?
我正在寻找通过长轮询或其他标准方式实现的某种类似于 HTTP 推送的功能,添加到在 Apache 之上使用 Perl 构建的页面。
有没有办法在不设置单独的服务器(如 Meteor 或 Stardust)的情况下做到这一点?是否有可以帮助处理服务器代码的模块?除了长轮询还有其他方法吗?
如果您需要快速而肮脏的修复以避免对当前应用程序或设计进行重大更改,并且您不需要即时更新,那么一种简单的方法是使用从浏览器到服务器的常规 AJAX 轮询。
换句话说,您将在浏览器中使用 javascript 每隔几秒钟检查一次服务器,以查看服务器上是否有针对此浏览器会话的任何消息和/或数据。这很可能不会很好地扩展,尤其是在轮询超时很短的情况下,并且会消耗服务器资源,但这可能是一个有用的权宜之计。
重申一下,这只是一个快速修复的解决方法 - 普遍的共识是您需要使用 COMET(可能在您的情况下在单独的服务器上)作为适当的解决方案(直到 websockets 到达......) - 在这些链接中查看一些很好的分析:
http://cometdaily.com/2007/11/06/comet-is-always-better-than-polling/ http://stackoverflow.com/questions/2975290/comet-vs-ajax-polling