2015-07-14 15 views
5

üzerinde etkisi Ben: Benim Server günüyeniden başlatma Amiri ve benim <code>index.html (HTML/Javascript)</code> yılında 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); 
     });  
    }); 

Ben:

@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']}) 

giriş yaptıktan sonra, ben session['venue_id'] = True kurmak ve index.html taşımak. Ben olsun çıktısı:

Received #: Connected 
Received #: Entered the room venue_1 

Sorum: İlk koştuktan sonra, ben supervisor içinden ardından stop ve start projemde açık index.html sayfasını tutmak ve. Bu noktada neden aynı çıkışı yukarıdaki gibi alıyorum? initial connect, venue_id'un session'dan kaldırılmasının ve dolayısıyla request.namespace.disconnect()'un çağrılması gerektiğini düşünürdüm?

Birisi bana burada olayların sırasını açıklayabilir misiniz?

Teşekkür

cevap

2

Socket.IO istemci yeniden bağlanma mantığı içinde inşa etti. Sunucu orada beklenen kesme olmakla hemen istemci yeniden bağlanmaya başlar, ve açıkçası yeniden başlatma beri çok hızlı bir şekilde başarılı uzağa giderse çok kısa bir süre var.

İlgili konular