Javascript 服务器使用脱机脚本发送事件
我有一个简单的数据流,工作原理如下: 客户端注册到事件创建者服务器, 第三方向服务器发出post请求, 然后服务器向其所有侦听器(即客户端)发送一个事件 要发送事件,我想我会使用服务器发送的事件,但我遇到了问题,因为发送事件的脚本并非始终在运行,因此任何试图连接到事件的人都会继续尝试连接,但什么也得不到,当第三方发布帖子时,没有人注册运行脚本的事件 如何始终保持脚本运行?如果我这样做,这不会导致资源泄漏吗Javascript 服务器使用脱机脚本发送事件,javascript,php,post,server-sent-events,Javascript,Php,Post,Server Sent Events,我有一个简单的数据流,工作原理如下: 客户端注册到事件创建者服务器, 第三方向服务器发出post请求, 然后服务器向其所有侦听器(即客户端)发送一个事件 要发送事件,我想我会使用服务器发送的事件,但我遇到了问题,因为发送事件的脚本并非始终在运行,因此任何试图连接到事件的人都会继续尝试连接,但什么也得不到,当第三方发布帖子时,没有人注册运行脚本的事件 如何始终保持脚本运行?如果我这样做,这不会导致资源泄漏吗 有没有一种方法可以让您注册未来脚本将创建的任何事件?基本上,您需要将此视为两个完全独立的问
有没有一种方法可以让您注册未来脚本将创建的任何事件?基本上,您需要将此视为两个完全独立的问题: 如何将事件发布到订阅者通知队列中 如何向订阅的客户端发送近即时通知 让我们从2开始 有很多方法可以解决这个非常常见的问题,其中很多都有依赖性。如果您在根级别上控制服务器,您可以从多个级别中进行选择,但是如果您希望在任何低成本的PHP环境中都可以承载此功能,我建议您将轮询作为一种稍微陈旧的、易于理解的技术:您的客户机是否通过AJAX轮询服务器,以及服务器端轮询脚本监视服务器上的事件。只有在30-120秒之后才能从脚本返回,以保持在超时内,同时可能会发送一些占位符。如果发生事件,请立即返回事件 这就解决了脚本持续运行的问题:客户机让它保持运行 假设你有这个,1。似乎很简单:将事件发布到中心队列,例如数据库,并通过SHM或文件删除等方式启动轮询器