12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- //--------------------------------------------------
- // Bi-Directional OSC messaging Websocket <-> UDP
- //--------------------------------------------------
- var osc = require("osc"),
- WebSocket = require("ws");
- var getIPAddresses = function () {
- var os = require("os"),
- interfaces = os.networkInterfaces(),
- ipAddresses = [];
- for (var deviceName in interfaces){
- var addresses = interfaces[deviceName];
- for (var i = 0; i < addresses.length; i++) {
- var addressInfo = addresses[i];
- if (addressInfo.family === "IPv4" && !addressInfo.internal) {
- ipAddresses.push(addressInfo.address);
- }
- }
- }
- return ipAddresses;
- };
- var udp = new osc.UDPPort({
- localAddress: "0.0.0.0",
- localPort: 7400,
- remoteAddress: "127.0.0.1",
- remotePort: 4559 //7500 4559 - for Sonic Pi
- });
- udp.on("ready", function () {
- var ipAddresses = getIPAddresses();
- console.log("Listening for OSC over UDP.");
- ipAddresses.forEach(function (address) {
- console.log(" Host:", address + ", Port:", udp.options.localPort);
- });
- console.log("Broadcasting OSC over UDP to", udp.options.remoteAddress + ", Port:", udp.options.remotePort);
- });
- udp.open();
- var wss = new WebSocket.Server({
- port: 8081
- });
- wss.on("connection", function (socket) {
- console.log("A Web Socket connection has been established!");
- var socketPort = new osc.WebSocketPort({
- socket: socket
- });
- var relay = new osc.Relay(udp, socketPort, {
- raw: true
- });
- });
|