1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- if(!dojo._hasResource["dojox.socket.Reconnect"]){
- dojo._hasResource["dojox.socket.Reconnect"] = true;
- dojo.provide("dojox.socket.Reconnect");
- dojox.socket.Reconnect = function(socket, options){
-
-
-
-
-
-
-
-
-
-
-
-
-
- options = options || {};
- var reconnectTime = options.reconnectTime || 10000;
-
- var connectHandle = dojo.connect(socket, "onclose", function(event){
- clearTimeout(checkForOpen);
- if(!event.wasClean){
- socket.disconnected(function(){
- dojox.socket.replace(socket, newSocket = socket.reconnect());
- });
- }
- });
- var checkForOpen, newSocket;
- if(!socket.disconnected){
-
- socket.disconnected = function(reconnect){
- setTimeout(function(){
- reconnect();
- checkForOpen = setTimeout(function(){
-
- if(newSocket.readyState < 2){
- reconnectTime = options.reconnectTime || 10000;
- }
- }, 10000);
- }, reconnectTime);
-
- reconnectTime *= options.backoffRate || 2;
- };
- }
- if(!socket.reconnect){
-
- socket.reconnect = function(){
- return socket.args ?
- dojox.socket.LongPoll(socket.args) :
- dojox.socket.WebSocket({url: socket.URL || socket.url});
- };
- }
- return socket;
- };
- }
|