使用任何库或套接字用out实现http推送(在php中)


Implementing http push (in php) with out using any library or sockets

我需要使用php开发HTTP推送,它每20秒向浏览器发送一条消息。。我需要在服务器上显示

有没有任何方法可以在php中使用任何套接字或库来实现http推送?

当然:只要您希望连接保持打开,就不要让PHP脚本终止。由于每20秒生成一次输出,因此连接超时的可能性要小得多。

有很多方法可以实现这一点,包括阻塞(例如下面的sleep())或忙于等待,但最简单的解决方案是:

while( true ){
    generate_output();
    sleep(20);
}

您可能需要处理客户端上的意外连接终止,但这只是其中的一部分。请检查您的系统配置,看看您可以处理多少个打开的连接。(在Apache中,请参阅MaxClients)

至于客户端,请参阅以下答案https://stackoverflow.com/a/7953033/329062

实现这一点的唯一方法是使用WebSockets、"长轮询"或每20秒一次AJAX请求(即使没有任何更新)。您的解决方案将取决于您想要支持的浏览器。例如,较新的浏览器支持Web套接字,但较旧的浏览器不支持。我建议研究Web套接字。对于这种情况,它们是一个很好的解决方案。