2016-08-05 39 views
0

Ich habe ein Problem, das bei der letzten Aktualisierung auf 1.4.5 gestartet wurde. (Dies hat in den letzten 2 Jahren funktioniert). Wenn ich also einen client-msg an den Server sende, empfängt der Server die msg und soll dann die msg an alle angeschlossenen Sockets (einschließlich sich selbst) zurücksenden. Das Problem, das ich jetzt habe, ist, dass ich keine Nachrichten mehr an alle Sockets ausgeben kann. Wenn ich die io.emit in socket.emit ändere, bekomme ich die server-response ganz gut, aber das ist natürlich nur für diese eine Buchse. Ich ging sogar zu den (sparse) socket.io Docs und versuchte, die Emitter-Bibliothek ohne Glück zu verwenden. Was vermisse ich?socket.io-Client empfängt io.emit vom Server nicht (über den redis-Adapter)

Seite Server:

var redisPort = 6379 
var io = require('socket.io'); 
var redisAdapter = require('socket.io-redis'); 
var emitter = require('socket.io-emitter')({ host: 'localhost' , port : redisPort });//6379 

io = io.listen(httpServer); //express server 
io.adapter(redisAdapter({ host: 'localhost' , port : redisPort }));//6379 
io.on('connection', function(socket){ 

    socket.on('client-msg', function(data){ 
     var msgObject = { content : '' , status : 0 }; 
     if(data && data.content){ 
      msgObject.content = data.content; 
      msgObject.status = 1; 
     } 

     io.emit('server-response', msgObject);//doesn't work (noone gets the data) 
     emitter.emit('server-response', msgObject); //doesn't work (noone gets the data) 
     socket.emit('server-response', msgObject);//works (just the one socket gets the data) 

    }); 

    socket.on('disconnect', function(data) { 
     //do some stuff unrelated to emitting       
    }); 

}); 

Client-Seite:

var socketio = io.connect(window.location.origin , { transports : ['websocket'] }); 

socketio.emit("client-msg" , { content : msg }); 

socketio.on("server-response", function(data) { 

    if(data.status == 1){ 
     displayTheMessage(data); 
    } 

}); 

Antwort

0

die Debug und die Suche nach ähnlichen Fehlern Online Nach dem Ausführen ich diesen Beitrag gefunden: https://github.com/socketio/socket.io/issues/2378

stellte sich heraus, war ich nicht aktiv kompatible Version von socket.io, socket.io-redisis, die zum Zeitpunkt dieser Veröffentlichung socket.io v1.4.4 und socket.io-redisis 1.0.0

sind