我正在开发基于Backbone的应用程序(它也是一个平板应用程序),它使用websockets。Websockets运行良好,但应用程序没有任何用于错误/网络处理的逻辑。
应用程序应该向用户显示他断开连接的消息,并且应用程序应该重新尝试再次连接,一旦连接回来,事情就会重新开始,就像gmail一样。
我还没有写过任何服务器端的websocket代码,而且我也是Websockets的新手。
有没有关于如何处理Websockets的网络断开和重新连接的好文章?
我无法找到如何在Websockets上设置超时,或如何重新连接等。
由于它是一个平板电脑应用程序,所以会有频繁的网络断开,而且应用程序也会进入睡眠模式。有什么特殊的考虑或实践吗?
发布于 2012-12-13 16:48:23
根据this article的说法,你可以使用try/catch来处理错误的情况,比如无法连接:
function connect(){
try{
var socket;
var host = "ws://localhost:8000/socket/server/startDaemon.php";
var socket = new WebSocket(host);
message('<p class="event">Socket Status: '+socket.readyState);
socket.onopen = function(){
message('<p class="event">Socket Status: '+socket.readyState+' (open)');
}
socket.onmessage = function(msg){
message('<p class="message">Received: '+msg.data);
}
socket.onclose = function(){
message('<p class="event">Socket Status: '+socket.readyState+' (Closed)');
}
} catch(exception){
message('<p>Error'+exception);
}
}即使在WebSocket规范中,我也找不到任何关于设置超时持续时间的内容,这可能是不可能的。
https://stackoverflow.com/questions/13855896
复制相似问题