2012-05-28 5 views
7

Gibt es eine gute Möglichkeit, Sitzungen mit Socket.io in Express 3.0 zu verwenden? Eine Möglichkeit, die Session-ID der Clients auf sichere Weise zu erhalten? So dass ich Benachrichtigungen an Mitglieder senden kann, die für ihr Konto spezifisch sind und private Chats von Mitglied zu Mitglied machen?Socket.io Express 3 Sitzungen

Ich verwende MySQL Speicher in Express 3.0

+0

Für Express 4.x & socket.io 1.x http://stackoverflow.com/a/25618636/153718 – Epeli

Antwort

0

ich es tat etwas, etwas anderes zu bekommen arbeiten. Ich las viele Beiträge on nodester github und kam mit der folgenden Lösung ....

ersetzen:

http.createServer(app).listen(app.get('port'), function(){ 
     console.log("Express server listening on port " + app.get('port')); 
    }); 

mit:

var server = http.createServer(app).listen(app.get('port'), function(){ 
    console.log("Express server listening on port " + app.get('port')); 
}); 

var io = require('socket.io').listen(server); 

Mein Plan ist, mit diesem Problem zu umgehen, bis Fragen fortzusetzen um express3 und socket.io sind aufgelöst.

9

Ich habe ein kleines Modul geschrieben, um es zu abstrahieren, so sieht seine Verwendung aus. Es wurde geschrieben und getestet mit Express 3, socket.io 0.9.10 und dem (Standard) MemoryStore von Connect 2.4.5. Es sollte mit anderen kompatiblen Speichern gut funktionieren.

var SessionSockets = require('session.socket.io') 
    , sessionSockets = new SessionSockets(io, sessionStore, cookieParser); 

sessionSockets.on('connection', function (err, socket, session) { 
    //your regular socket.io code goes here 
}); 

Weitere Informationen darüber, wie es sehen arbeitet https://github.com/wcamarao/session.socket.io

Sie könnten die Aufmerksamkeit auf den Teil der Readme zahlen wollen, wo es heißt, wie es verwenden, um mit Ihrer eigenen Session-Speicher-Taste (Ich gehe davon aus Ihr MySQL-Speicher verwendet einen anderen Namen als den Standardnamen "connect.sid".

+0

Works Wie ein Zauber, danke! –

Verwandte Themen