nodejs socket.ioサーバーをトリガーして、ポート80を介してブロードキャストします

StackOverflow https://stackoverflow.com/questions/7804209

  •  25-10-2019
  •  | 
  •  

質問

リアルタイムの更新メカニズム:ユーザーの書き込み - > php in mysql dbに保存 - > php nodejsに情報を送信 - > nodejsすべてのサブスクライバー - >他の人がリアルタイムで気付くことができます。

Socket.ioサーバーはうまく機能し、ポート8080で実行されます。ポート80でノードHTTPサーバーを実行しています。HTTPサーバーでトリガーメッセージを取得し、すべての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..
....
役に立ちましたか?

解決

socket.io 0.7では、代わりに次のものを使用して、特定のソケット参照なしで接続されたすべてのソケットに送信する必要があります。

io.sockets.send("Messages")

これは異なることに注意してください broadcast それはすべてのソケットに送られるので を除外する 接続を開始したソケット - もちろん、送信ソケット参照が必要なため、現在のコードでは十分ではありません。

Wikiページからの引用: socket.io/wiki

あなたがすべての人にメッセージを送りたいなら、あなたは参照することができます io.sockets:

io.sockets.send('message');

io.sockets.emit('event');

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top