nodejs, socket.io: comment obtenir de demande et de réponse de prise de fonction?
je m création d'application de chat, à l'aide de nodejs (0.8.15), express (>3.0) cadre et mongodb pour l'enregistrement des utilisateurs.
var express = require('express')
, http = require('http')
, path = require('path')
, io = require('socket.io');
var app = express()
, server = http.createServer(app)
, io = io.listen(server);
app.configure(function() {
app.set('port', process.env.PORT || 3000);
app.set('views', __dirname + '/views');
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.cookieParser('secret'));
app.use(express.session({cookie: {maxAge: 60000*100}}));
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
});
app.configure('development', function() {
app.use(express.errorHandler());
});
app.get('/chat', function(req, res) {
res.render('chat');
});
server.listen(app.get('port'), function() {
console.log("Express server listening on port " + app.get('port'));
});
io.sockets.on('connection', function (socket) {
socket.on('start-chat', function() {
//here i need to know req and res
//for example, i need to write:
//socket.username = req.session.username;
});
});
Q: Comment obtenir des res et req des objets à travailler avec eux lors d'une conversation comme sur le code ci-dessus? ou vais-je de mauvaise façon de créer de chat avec authentification de l'utilisateur?
merci!
ÉDITÉ: la réponse est ici
http://www.danielbaulig.de/socket-ioexpress/
OriginalL'auteur sirjay | 2012-11-28
Vous devez vous connecter pour publier un commentaire.
Vous ne pouvez pas obtenir res et req objets dans une prise de courant.io gestionnaire, comme ils n'existent tout simplement pas prise.io n'est pas normal l'adresse http.
Au lieu de cela, ce que vous pouvez faire est d'authentifier les utilisateurs et de leur attribuer une session d'authentification jeton (une clé qui identifie qu'ils sont connectés et qui ils sont).
Ensuite, le client peut envoyer le jeton d'authentification avec chaque socket.io message, et du côté serveur, le gestionnaire peut juste vérifier la validité de la clé dans la base de données:
OriginalL'auteur flyingkernel
Vous devez utiliser
authorization
.OriginalL'auteur
sur
socket.io v1.0
et ci-dessus, vous pouvez obtenir lereq
un objet comme çaOriginalL'auteur Yaki Klein