Я пытаюсь отправить пакет UDP Multicast на: 230.185.192.108, чтобы все подписанные получат. Немного застрял. Я считаю, что он транслируется правильно, но, похоже, не могу ничего уловить ни с одним клиентом.
Сервер:
var news = [
"Borussia Dortmund wins German championship",
"Tornado warning for the Bay Area",
"More rain for the weekend",
"Android tablets take over the world",
"iPad2 sold out",
"Nation's rappers down to last two samples"
];
var dgram = require('dgram');
var server = dgram.createSocket("udp4");
server.bind();
server.setBroadcast(true)
server.setMulticastTTL(128);
server.addMembership('230.185.192.108');
setInterval(broadcastNew, 3000);
function broadcastNew() {
var message = new Buffer(news[Math.floor(Math.random()*news.length)]);
server.send(message, 0, message.length, 8088, "230.185.192.108");
console.log("Sent " + message + " to the wire...");
//server.close();
}
Клиент
var PORT = 8088;
var HOST = '192.168.0.102';
var dgram = require('dgram');
var client = dgram.createSocket('udp4');
client.on('listening', function () {
var address = client.address();
console.log('UDP Client listening on ' + address.address + ":" + address.port);
client.setBroadcast(true)
client.setMulticastTTL(128);
client.addMembership('230.185.192.108');
});
client.on('message', function (message, remote) {
console.log('A: Epic Command Received. Preparing Relay.');
console.log('B: From: ' + remote.address + ':' + remote.port +' - ' + message);
});
client.bind(PORT, HOST);
Ссылки Подробнее о дейтаграмме NodeJS
client.bind(PORT, '230.185.192.108')
- сработало. Мне не нужно было указывать HOST в вызовеaddMembership()
. (Запуск обоих процессов на одном хосте, fwiw.) - person broofa   schedule 08.04.2020