0

我正在开发基于 Backbone 的应用程序(它也是一个平板电脑应用程序),它使用 websockets,. Websocket 运行良好,但应用程序没有任何错误/网络处理逻辑。

应用程序应该向用户显示他已断开连接的消息,并且应用程序应该重新尝试重新连接,一旦连接回来,事情就会重新开始工作,比如 gmail。

我还没有编写任何服务器端 websocket 代码,而且我是 Websockets 的新手。
有没有关于如何处理Websockets的网络断开,重新连接的好文章?
我无法找到如何在 Websockets 上设置超时,或者如何重新连接等。

由于是平板应用,所以会经常断网,应用也会进入休眠状态。有什么特别的考虑或做法吗?

4

1 回答 1

0

根据这篇文章,您可以使用 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 规范中,我也找不到任何关于设置超时持续时间的提及,这可能是不可能的。

于 2012-12-13T08:48:22.617 回答