const args = process.argv.slice(2); var host = args[0]; if (!host) host = 'http://localhost:8080'; console.log( "connecting to the host... : \n" + "\t --> " + host + "\n" ); var socket = require('socket.io-client')(host); var osc = require("osc"); var udp = new osc.UDPPort({ localAddress: '0.0.0.0', //NOTE: '127.0.0.1' doesn't work!! for comm. between different machines localPort: 57001, remoteAddress: '0.0.0.0', remotePort: 57000, metadata: true }); Promise.all([ new Promise(function(resolve, reject) { udp.on("ready", function() { resolve(0); console.log('udp ready..'); }); }) ]).then(function(results) { socket.on('connect', () => console.log("[osc-receiver] i'm connected.")); socket.on('disconnect', () => console.log("[osc-receiver] i'm disconnected.")); socket.on('rover', function(rover) { udp.send({ address: "/rover", args: [ { type: "f", value: rover.px }, { type: "f", value: rover.py }, { type: "f", value: rover.pz }, { type: "f", value: rover.pan }, { type: "f", value: rover.tilt }, { type: "f", value: rover.rot }, { type: "f", value: rover.grounded } ] }); }); }); udp.open(); udp.on("ready", function() { console.log( "[udp] ready (udp) : \n" + "\tlistening on --> " + udp.options.localAddress + ":" + udp.options.localPort + "\n" + "\tspeaking to -> " + udp.options.remoteAddress + ":" + udp.options.remotePort + "\n" ); });