Question

Mise à jour en temps réel mécanisme. Écriture utilisateur -> php conservez-le dans mysql db - envoyer> php information à NodeJS -> NodeJS envoyer le changement tous les abonnés -> d'autres peut-il remarquer en temps réel

Le serveur Socket.io fonctionne bien et fonctionne sur le port 8080. je noeud http serveur exécutant sur le port 80. Comment puis-je obtenir un message de déclenchement sur le serveur http et envoyer le message à tous les clients Socket.IO?

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

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Message Broadcast\n');
  console.log("Message Sent");

  //DOES NOT SEEM TO WORK, error
  io.broadcast("Messages");

  //No error but no messages
  io.emit("Message");

}).listen(80, "0.0.0.0");


/**
Other socket.io code which works well..
....
Était-ce utile?

La solution

En Socket.IO 0,7, vous devez utiliser les éléments suivants au lieu d'envoyer à tous les sockets connectées sans référence prise spécifique:

io.sockets.send("Messages")

Notez que ceci est différent de broadcast car cela envoyer à tous les sockets sauf la prise qui a initié la connexion - vous besoin bien sûr une référence de prise d'envoi qui est la raison pour laquelle votre code actuel ne serait pas suffisant .

Citation de la page wiki: Socket.IO/Wiki

Si vous voulez envoyer un message à tout le monde que vous pouvez faire référence io.sockets:

io.sockets.send('message');

io.sockets.emit('event');

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top