2017-04-09 21 views
0

を切断するとき、私はそうのようなjsのクライアント側でsocket.ioを使用していたクライアント側のイベントを発火ない:予想通り、私は、サーバーをオフに切り替えるとはSocket.IOインターネット接続

this.connect = function(roomname) { 
    var deferred = $q.defer(); 

    if(self.isConnected)  { 
     deferred.$$reject('already connected'); 
     return deferred.promise; 
    } 
    self.isConnected = true; 
    connectedRoom = roomName; 

    socket = io('', { 
     query: 'roomname=' + roomname 
    }); 
    socket.on('connect', function() { 
     console.log('socket client connected ' + socket.id); 
     $rootScope.$broadcast('socketsConnected'); 

     socket.emit('room', roomName, function() { 
     deferred.resolve(); 
     }); 
    }); 
    socket.on('reconnect', function() { 
     self.isConnected = true; 
     console.log('socket client reconnecting ' + socket.id); 
    }); 
    socket.on('disconnect', function() { 
     self.isConnected = false; 
     console.log('socket client disconnecting ' + socket.id); 
    }); 
    return deferred.promise; 
    } 

disconnectイベントが解雇しました。サーバーを再度オンに切り替えると、reconnectが期待通りに起動されます。

私のwi-fiを切り替えると、disconnectイベントが発生することはありません(私は数分間残しました)。

reconnectイベントでwi-fiを戻すと、メッセージは送信されて正しく受信されるため、接続を再確立するように見えます。

どのようにこれらのイベントをwi-fiを紛失して発砲させることができますか?

答えて

2

私は長い一日を過ごしました。誰かが私と同じくらいばかげている場合、私のサーバは私のクライアントと同じマシン上にあったので、wi-fiを切っても効果はありません!

+0

これは良いことです。それは、プログラミングからの休みを取って、しばらくの間別のことをやろうとする時が本当にあることを知ったときです。 – jfriend00