为什么在打印数据时php会在客户端断开连接而不是以其他方式断开连接?

时间:2016-01-22 16:38:21

标签: javascript php loops connection server-sent-events

我正在使用php和javascript使用SSE。

我有一个循环(开发时间为15秒),它会运行并添加“开始连接”,“仍然在这里”(睡眠1秒后),以及与数据库的“结束连接”用于调试目的。

我发现当PHP脚本在没有“打印”/“回复”/“var_dump()”任何信息的情况下运行时,无论客户端是否有任何信息,脚本(读取“循环”)都会运行完成终止连接与否。

但是,当我打印/ echo / var_dump时 - 脚本会在用户终止后立即终止。

为什么存在这种差异?

1 个答案:

答案 0 :(得分:0)

通常,当客户端断开连接时,应该中止脚本。有几种方法可以覆盖:

  • ignore_user_abort
  • 中设置php.ini选项
  • php_value ignore_user_abort
  • 中设置httpd.conf选项
  • 在PHP脚本中调用ignore_user_abort()
  • 在PHP脚本中注册一个关闭函数register_shutdown_function()