保持与php的实时连接?
我在一个项目中工作,不断地ping一个php脚本以获取新数据,因此如果我正确理解这一点,这意味着正在ping的php脚本将被无限期地反复运行。它可以工作,但我猜这对服务器来说是一个巨大的压力,可能被认为是丑陋和糟糕的做法。我说的对吗 是否有任何方法可以保持与脚本的连接处于活动状态,并利用php内置的输出缓冲来刷新所需的内容,但使用某种循环使脚本无限期运行,以便在新数据可用时可以输出。这也是个坏主意吗 我只是在寻找有更多经验的输入表单开发人员 最后一件事保持与php的实时连接?,php,performance,keep-alive,output-buffering,Php,Performance,Keep Alive,Output Buffering,我在一个项目中工作,不断地ping一个php脚本以获取新数据,因此如果我正确理解这一点,这意味着正在ping的php脚本将被无限期地反复运行。它可以工作,但我猜这对服务器来说是一个巨大的压力,可能被认为是丑陋和糟糕的做法。我说的对吗 是否有任何方法可以保持与脚本的连接处于活动状态,并利用php内置的输出缓冲来刷新所需的内容,但使用某种循环使脚本无限期运行,以便在新数据可用时可以输出。这也是个坏主意吗 我只是在寻找有更多经验的输入表单开发人员 最后一件事 是否有其他方法可以保持数据的恒定流(不包括
是否有其他方法可以保持数据的恒定流(不包括flash或silverlight之类的技术)?如果您当前使用的方法能够在测试此应用程序中预期的负载类型时继续工作,那么它实际上并不被视为坏做法。如果它有效的话,保持简单并不是犯罪。任何与您所描述的内容相符的东西都将与web的原始模型背道而驰,因此您正在冒险进入不稳定的领域 我建议你检查一下这项技术。它通常用于与您所需相反的用途—服务器不断地将信息推送到页面—但它显然可以双向工作。虽然你的里程数可能会有所不同,但我听到了一些好消息。正如维基百科所描述的: 在web开发中,Comet是一个新词,用于描述web应用程序模型,在该模型中,长期持有的HTTP请求允许web服务器将数据推送到浏览器,而无需浏览器明确请求数据。Comet是实现这种交互的多种技术的总称。所有这些方法都依赖于浏览器中默认包含的特性,例如Javascript,而不是非默认插件
似乎php并不是解决这个问题的最佳语言选择。可能会考虑像Scala或Erlang之类的设置来更好地处理这类长寿命的消息。 您必须学习如何在php中使用套接字 从这里开始:
这里的afair是关于编写独立php应用程序的有用手册:我认为这要看情况而定。如果希望数据传输由客户机启动,这里最好的选择是一些ajax(比如getxmlhttpobject,或者如果您想作弊,可以选择iframes:P)。如果您希望由服务器启动传输,那么,可能php不是您想要使用的语言。您可以使用ajax进行http流式传输。看看。我同意,但我准备迎接挑战。