Nikolay Suslov 5 éve
szülő
commit
078ccce455
1 módosított fájl, 58 hozzáadás és 0 törlés
  1. 58 0
      index-local.js

+ 58 - 0
index-local.js

@@ -0,0 +1,58 @@
+//--------------------------------------------------
+//  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
+    });
+});