2015-07-14 13 views
5

Nel mio index.html (HTML/Javascript) ho:Riavvio Supervisore e effetto sulla FlaskSocketIO

$(document).ready(function(){ 
     namespace = '/test'; 

     var socket = io.connect('http://' + document.domain + ':' + location.port + namespace); 

     socket.on('connect', function() { 
      socket.emit('join', {room: 'venue_1'}); 
     });  


     socket.on('my response', function(msg) { 
      $('#log').append('<br>Received #' + ': ' + msg.data); 
     });  
    }); 

Sul mio Server ho:

@socketio.on('connect', namespace='/test') 
def test_connect(): 
    if session.get('venue_id'): 
     emit('my response', {'data': 'Connected'})  
     session.pop('venue_id', None) 
    else: 
     request.namespace.disconnect() 

@socketio.on('join', namespace='/test') 
def join(message): 
    join_room(message['room']) 
    room = message['room'] 
    emit('my response', {'data': 'Entered the room ' + message['room']}) 

Dopo il login, ho impostato session['venue_id'] = True e passare alla index.html. L'output che ottengo è:

Received #: Connected 
Received #: Entered the room venue_1 

La mia domanda: Dopo la corsa iniziale, ho tenere la pagina index.html aperta e poi stop e start mio progetto attraverso supervisor. A questo punto, perché ottengo lo stesso risultato di cui sopra? Avrei pensato che dopo il initial connect, venue_id sarebbe stato rimosso dal session e quindi sarebbe stato chiamato request.namespace.disconnect()?

Qualcuno potrebbe spiegarmi la sequenza di eventi qui?

Grazie

risposta

2

Il cliente Socket.IO ha una logica di riconnessione costruito. Se il server va via c'è la disconnessione previsto, ma subito il cliente inizia a connettersi di nuovo, e, ovviamente, riesce molto rapidamente in quanto il riavvio ha un tempo di fermo molto breve.