我正在尝试使用Google应用引擎服务器上的长轮询机制构建聊天应用程序。 HTTPRequest的默认时间超过30秒,因此如果没有来自服务器的更新,我每隔28秒向服务器发送一次轮询请求(这样我就不会错过来自其他客户端的任何消息)。 第一个请求已注册,但28秒后发送的第二个请求未到达服务器。
function loadPage(query){
$.get({ url: query, success: function(events){
updated = 1;
//events data processing
createServerChannel();
});
}
function createServerChannel(){
var query='/ChatController?&user='+userName+'&sessionName='+sessionName+'®ister=true';
loadPage(query);
updated = 0;
setInterval(function() { poll(query); }, 28000);
};
function poll(query){
if(updated==0){
loadPage(query);
}
}
我正在使用thread.wait()来请求在服务器上等待。当来自同一客户端的下一个请求可用时,有没有办法使用第一个待处理请求。 请帮忙。
答案 0 :(得分:0)
我认为网络套接字可能是一种更好的方法,因为它可以保持对服务器的连续连接,并等待服务器将数据推送到客户端。