我有一个Web应用程序,它依赖于来自服务器的更新信息。过去,客户端会在完成前1000ms后发送ajax请求。它运作良好,但浪费资源。当客户端支持该应用程序时,该应用程序已转换为使用websocket(如果不支持,则会降级为Ajax)。是否需要重申websocket连接?
在过去,通过AJAX指示浏览器被清凉活性每秒提供一个脉冲。现在,它看起来死了,只是在那里工作。我有以下几点:
function connect() {
$("#text1").text('Socket Status: '+socket.readyState+' (connecting)');
socket.onopen = function(){
$("#text1").text('Socket Status: '+socket.readyState+' (open)');
}
socket.onmessage = function(msg){ checkDATA(msg.data); }
socket.onclose = function(){
$("#text1").text('Socket Status: '+socket.readyState+' (close)');
setTimeout(function() { connect(); },500);
}
socket.onerror = function(){
$("#text1").text('Socket Status: '+socket.readyState+' (error) '+msg.data);
}
}
所以我有状态的一些指示,但没有显示的脉冲。我应该伪造一个脉冲,还是有一些不同的/更好的,可以/应该做的,以确保连接工作?
什么错误(S)我不能监控?我将这个函数封装在'try {} catch {}'中,当服务器重新启动时引发火灾。 'Catch'等待5秒钟并尝试重新连接。我删除了重新连接'onerror',因为每次出现错误时,我都将服务器的连接数加倍。如果我明白浏览器为什么/如何更改连接状态,测试连接似乎是可以避免的。 – shaun5 2012-03-18 03:36:04