websocket错误/网络管理

时间:2012-12-13 08:34:40

标签: javascript websocket

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

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

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

作为一款平板电脑应用程序,因此频繁出现网络断开连接,App也将进入睡眠状态。是否有任何特殊考虑或做法?

1 个答案:

答案 0 :(得分:0)

根据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规范中找不到设置超时持续时间的任何提及,这可能是不可能的。