Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
以随机间隔复制PHP的SSE回显_Php_Mysql_Server Sent Events - Fatal编程技术网

以随机间隔复制PHP的SSE回显

以随机间隔复制PHP的SSE回显,php,mysql,server-sent-events,Php,Mysql,Server Sent Events,我正在尝试设置一个PHP服务器发送事件,它可以正常工作。但在随机的时间间隔内,它重复推送相同的数据 这里有一个快速的场景来澄清我所描述的内容:假设我在1:00:00插入一条db记录。记录的数据按其应有的方式推送。但是,在1:03:00,该记录的数据将被第二次推送。然后在1:03:17,它再次被推。我现在显示了3个记录实例 为什么会发生这种情况,为什么会以随机间隔发生 我增加了php执行时间,但问题仍然存在 在浏览器控制台中,我得到以下错误:net::ERR\u complete\u CHUNKE

我正在尝试设置一个PHP服务器发送事件,它可以正常工作。但在随机的时间间隔内,它重复推送相同的数据

这里有一个快速的场景来澄清我所描述的内容:假设我在1:00:00插入一条db记录。记录的数据按其应有的方式推送。但是,在1:03:00,该记录的数据将被第二次推送。然后在1:03:17,它再次被推。我现在显示了3个记录实例

为什么会发生这种情况,为什么会以随机间隔发生

我增加了php执行时间,但问题仍然存在

在浏览器控制台中,我得到以下错误:net::ERR\u complete\u CHUNKED\u编码

我为客户端准备了以下内容:

  <script>
    var source = new EventSource('pdo_updates.php');
    var pdo_updates;
    source.onmessage = function(e) {
        pdo_updates = e.lastEventId + '' + e.data + '<br>';
        document.getElementById("videoID").innerHTML += pdo_updates;
    };
    evtSource.close();
  </script>

所以,在尝试了几乎所有与keepalive相关的头和每个apache超时调整配置之后,我最终运行了一个数据包捕获。我发现远程端正在触发TCP重置。我的站点位于Cloudflare之后,一旦我禁用了Cloudflare,问题就部分消失了。TCP会话每100秒刷新一次,并将导致发生此情况时再次显示最后一条消息。这是导致浏览器控制台错误的原因:
net::ERR\u未完成\u分块\u编码

然而,与此同时,我的提交代码中存在一个问题。但我不是100%确定为什么

$.ajax({
       type: "POST",
       url: url,
       data: $("#submitmessage").serialize(), // serializes the form's elements.
       success: function(data)
       {

提交后,我需要清除输入字段中的值。从那以后,我就再也没有任何副本了

我猜在tot之后,
pdo_更新.php
。秒达到最大执行时间时,出现致命错误,客户端尝试使用旧的
上次事件\u id
重新连接到它。您可能是righ-->PHP致命错误:在第26行的C:\\Project\\Youtubeplayer\\pdo\u updates.PHP中超过了30秒的最大执行时间----如何更正此错误?SSE本质上依赖于持久连接。Nevermind:增加执行超时没有帮助。浏览器控制台出现一个错误:net::ERR_complete_CHUNKED_encoding与AWS上的负载平衡器有相同的问题。增加超时为我修复了它。
$.ajax({
       type: "POST",
       url: url,
       data: $("#submitmessage").serialize(), // serializes the form's elements.
       success: function(data)
       {
         $("#myvideo").val("");
       }
     });