Tag: icws

服务器发送事件轮询导致长时间延迟

我有一个连接器,它将使用cURL和PHP调用RESP API。 我需要每秒调用一个方法来检查新消息然后处理它们。 我使用以下两种方法来处理消息 使用SetInterval() AJAX轮询:每秒调用一次php脚本。 除非我无法防止多个SetInterval()从浏览器的不同选项卡同时运行,否则这种方法很有效。 (我不想让用户打开10个浏览器选项卡,这导致一个用户有10个SetInterval()同时运行。 使用EventSource服务器发送事件:一旦队列中有新数据,服务器将发送更新浏览器。 这会减慢响应时间。 我对脚本的每次调用都需要大约20秒才能完成,这是一个问题。 我不确定为什么会这样。 这是我的SetInterval()实现 function startCalls(){ //update the screen using Intervals refreshIntervalId = setInterval(function() { $.getJSON(“index.php”, {‘method’: ‘getMessages’, ‘jSON’: true} , function(data){ processServerData(data); }); }, 1000); } 一旦用户登录我就调用了这个函数startCalls() 在index.php文件中我有这个代码要调用 if($method == ‘getMessages’){ $messaging = new ICWS\Messaging($icws); $messaging->processMessages(); $myQueue = $messaging->getCallsQueue(); echo json_encode($myQueue ); } 这是我的第二个实现“Server-Sent Events” […]