Domanda

in tempo reale aggiornamento Meccanismo:. Scrive utente -> php salvarlo in mysql db -> php informazioni Invia ad nodeJS -> nodeJS inviare il cambiamento tutti gli abbonati -> altri possono notare in tempo reale

Il server Socket.io funziona bene e viene eseguito sulla porta 8080. Ho nodo http server in esecuzione sulla porta 80. Come posso ottenere un messaggio trigger sul server http e inviare il messaggio a tutti i client 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..
....
È stato utile?

Soluzione

In Socket.IO 0.7 si deve utilizzare il seguente invece di inviare a tutte le prese collegato senza riferimento socket specifico:

io.sockets.send("Messages")

Si noti che questo è diverso da broadcast dal momento che avrebbe mandato a tutte le prese tranne la presa che ha iniziato la connessione - naturalmente si richiede un riferimento presa di invio, che è il motivo per cui il codice corrente non sarebbe sufficiente .

Citazione dalla pagina wiki: Socket.IO/Wiki

Se vuoi mandare un messaggio a tutti è possibile fare riferimento io.sockets:

io.sockets.send('message');

io.sockets.emit('event');

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top