私はnode.jsの例を扱っています。ubuntu 12.10 マシンに openpgm と zeromq 3.2 をインストールしました。コードは次のとおりです。
var zmq = require('zmq')
, port = 'epgm://eth0;239.192.1.1:5555';
var socket = zmq.socket('pub');
socket.identity = 'publisher' + process.pid;
var stocks = ['AAPL', 'GOOG', 'YHOO', 'MSFT', 'INTC'];
socket.bind(port, function(err) {
if (err) throw err;
console.log('bound!');
setInterval(function() {
var symbol = stocks[Math.floor(Math.random()*stocks.length)]
, value = Math.random()*1000;
console.log(socket.identity + ': sent ' + symbol + ' ' + value);
socket.send(symbol + ' ' + value);
}, 1000);
});
そして他のアプリ:
var zmq = require('zmq') , port = 'epgm://eth0;239.192.1.1:5555';
var socket = zmq.socket('sub');
socket.identity = 'サブスクライバー' + process.pid;
socket.connect(ポート);
socket.subscribe('AAPL'); socket.subscribe('GOOG');
console.log('接続されました!');
socket.on('message', function(data) { console.log(socket.identity + ': 受信データ ' + data.toString()); });
正しいマルチキャスト アドレッシングを使用しているかどうかわかりません。これらのアプリを同じマシンとネットワーク内の別のマシンで一緒に試しました。私はその部分を考えていなかったと確信していますが、それについての良い説明がどこにも見つからないようです. しかし、とにかくこれが同じマシンで動作することを期待していました。何か案は?
PS: 正確に何が起こるかを説明するのを忘れました: 基本的に、プッシュ プログラムはエラーなしですべてのメッセージをプッシュし、プル プログラムは開始しますが、メッセージを受け取りません。