我正在开发基于Backbone的应用程序(它也是一个平板电脑应用程序),它使用websockets ,. Websockets运行良好,但Application没有任何错误/网络处理逻辑。
应用程序应向用户显示他已断开连接的消息,应用程序应重新尝试重新连接,并且一旦连接回来,事情就会重新开始,例如gmail。
我没有编写任何服务器端的websocket代码,而且我是Websockets的新手 有没有关于如何处理网络断开,重新连接Websockets的文章? 我无法找到如何在Websockets上设置超时,或者如何重新连接等等。
作为一款平板电脑应用程序,因此频繁出现网络断开连接,App也将进入睡眠状态。是否有任何特殊考虑或做法?
答案 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规范中找不到设置超时持续时间的任何提及,这可能是不可能的。