88 votes

Envoyer des données supplémentaires sur la connexion socket

Comment envoyer au mieux des données supplémentaires lors de la connexion au socket ?

Client:

 socket.on('connect',function(){ 
//I'd like set some values and pass them up to the node server.
});

Serveur Node.js :

 io.on('connection', function(client){
//I'd like to get the data here.
});

Par exemple, envoyer un nom d'utilisateur ou une adresse e-mail, etc.

74voto

Miquel Points 155

Vous devez envoyer vos données soit en connexion, soit en création :

 var s = io('http://216.157.91.131:8080/', { query: "foo=bar" });
s.connect();

var c = io.connect('http://216.157.91.131:8080/', { query: "foo=bar" });

Avec la nouvelle version de socket.io , c'est sur le serveur que les choses ont changé :

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

io.use(function(socket, next) {
  var handshakeData = socket.request;
  console.log("middleware:", handshakeData._query['foo']);
  next();
});

8voto

mukut Points 31

ceci mon code pour envoyer des données de requête à nodejs et au client du serveur server.io

 var socket = io.connect(window.location.origin,{query:'loggeduser=user1'});

io.sockets.on('connection', function (socket) {
    var endp = socket.manager.handshaken[socket.id].address;
    console.log("query... " +  socket.manager.handshaken[socket.id].query.user);
});

requête...utilisateur1

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X