3

socket.io を使用して、NodeJS (クラスター アーキテクチャ、個別の VM) でサーバー間通信を確立しようとしています。ここに投稿されているものを使用しようとしていますhttp://socket.io/docs/using-multiple-nodes/

var io = require('socket.io')(3000);
var redis = require('socket.io-redis');
io.adapter(redis({ host: 'localhost', port: 6379 }));

だから私は(おそらく間違っている)そうするときio.emit("message", "some example message")にそれを聞くことができると思います:

 io.on('connection', function(socket){
  console.log("io.on");
  socket.on('message', function(msg){
    console.log('message: ' + msg);
  });
});

1 つのサーバー (node_app) を実行し、別のサーバーでイベントを送信すると、デバッグ メッセージが表示されます。

socket.io-parser encoding packet {"type":2,"data":["message","some example message"],"nsp":"/"} +6s
  socket.io-parser encoded {"type":2,"data":["message","some example message"],"nsp":"/"} as 2["message","some example message"] +0ms

それぞれの間の通信を実現したいnode_app(キャッシュの無効化など):

ここに画像の説明を入力

4

1 に答える 1

1

同様のケースの解決策を探している人のために:私はこの記事を見つけましたhttp://code.tutsplus.com/tutorials/multi-instance-nodejs-app-in-paas-using-redis-pubsub--cms-22239これは本質的に私の質問に答えました。Redis のパブリッシュ/サブスクライブ メカニズムを使用して、私が望んでいたことを達成しました。:)

于 2016-05-09T15:51:45.853 に答える