gpt4 book ai didi

php - 长轮询超时问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:50:54 25 4
gpt4 key购买 nike

我正在做一个长轮询方法聊天室。但似乎,当发生长轮询并且我在 chrome 中刷新页面或者我尝试发送另一个异步请求时,一切都超时(即我无法再次加载我的域,直到我关闭/重新打开浏览器)。

我的客户端端代码是:

 $(document).ready(function() {
setTimeout(
function () {
longPollForMessages();
},
500
);
});

function longPollForMessages()
{
$.ajax({
url: url,
dataType: 'json',
success: function(data) {
$('#chat_messages').append('<div>'+data.messages+'</div>');

longPollForMessages();
}
});
}

还有我的服务器端:

while(true) {
$messages = $db->getMessages();

if (!$messages || sizeof($messages)==0) {
sleep(1);
} else {
echo '{"message":'.json_encode($messages).'}';
die();
}
}

有什么想法吗?假设没有语法错误。

最佳答案

我可以看到你已经回答了你自己的问题,但我最近遇到了类似的问题并找到了另一种处理它的方法是在 ajax 调用上禁用 setTimeout,然后在 上重新启动它>成功。这样您就不会在服务器未准备好提供信息时向其发送信息。

关于php - 长轮询超时问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4965486/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com