Отправить широковещательное сообщение при изменении dgram.socket - PullRequest
0 голосов
/ 24 февраля 2020

Я понятия не имею, как отправить все сообщения, которые я получаю на своем UDP_Server, на все подключенные клиенты (localhost: 3000 сейчас). Я хотел бы вызвать сообщение Brodcast для всех подключенных клиентов, как только приходит сообщение любого типа на сервер udp ... Есть идеи? Любой совет?

var osc = require('osc-min'),
    dgram = require('dgram'),
    express = require('express'),
    socket = require('socket.io'),
    remote_osc_ip;

var i=0;

app = express();
var server = app.listen(3000);
app.use(express.static('public'));
var io_server = socket(server);
io_server.sockets.on('connection', on_new_Connection);
function on_new_Connection(socket) {
  console.log("new connection" + socket.id);
}

var udp_server = dgram.createSocket('udp4', function(msg, rinfo) {
  console.log("Message arrived BRUH");

  var osc_message;
  try {
    osc_message = osc.fromBuffer(msg);
    //console.log(osc_message);
  } catch(err) {
    return console.log('Could not decode OSC message');
  }

  if(osc_message.address === '/unity/slider1') {
    return console.log('Slider1');
  }

  if(osc_message.address === '/unity/slider2') {
    return console.log('Slider2');
  }

  if(osc_message.address === '/unity/button1') {
    return console.log('Button1');
  }

  if(osc_message.address === '/unity/button2') {
    return console.log('Button2');
  }

  sendBroadcast(osc_message);

  remote_osc_ip = rinfo.address;

});

udp_server.bind(32000);
console.log('Starting UDP server on UDP port 32000');

udp_server.on("message", sendBroadcast);

function sendBroadcast(message) {
  console.log('sendingBroadcast');
  var osc_message = osc.fromBuffer(message);
}

...