服务器使用脱机脚本发送事件

时间:2014-01-26 12:56:58

标签: javascript php post server-sent-events

我有一个简单的数据流,其工作原理如下:

客户注册活动创建者服务器, 第三方向服务器发出发布请求, 然后服务器向其所有侦听器(客户端)发送一个事件。

发送我认为我会使用服务器发送事件的事件,但是我遇到了问题,因为发送事件的脚本一直没有运行,所以任何试图连接到事件的人都会继续尝试连接和什么都没有,当第三方确实发布帖子时,没有人报名参加运行的脚本事件。

如何让脚本始终保持运行状态?如果我这样做,这不会导致资源泄漏吗?

有没有办法做到这一点,以便您注册“未来”脚本将创建的任何事件?

1 个答案:

答案 0 :(得分:0)

基本上你需要把它看作两个完全独立的问题:

  1. 如何将活动发布到订阅者通知队列
  2. 如何对订阅的客户进行即时通知
  3. 让我们从2开始。)

    这个非常常见的问题有很多方法,其中很多都有依赖关系。如果您控制服务器(在根级别),您可以从众多服务器中进行选择,但是如果您希望在任何低成本的PHP环境中都可以使用它,我建议您进行长时间的轮询,作为一个有点老化的螺母,易于理解和简单技术:您是否有客户轮询服务器(通过AJAX)和服务器端轮询脚本监视服务器上的事件。只有在30-120秒之后才能从脚本返回以保持超时(同时可能会发送一些占位符)。如果发生事件,请立即返回事件。

    这解决了您不断运行的脚本问题:客户端使其保持运行。

    假设你有这个,1。看起来很简单:将事件发布到中央队列(例如数据库)并启动轮询器,例如通过SHM或文件删除。