typing does nothing at all
This commit is contained in:
@ -2,29 +2,26 @@ const WebSocket = require("ws");
|
|||||||
const osc = require("osc");
|
const osc = require("osc");
|
||||||
var pjson = require('./package.json');
|
var pjson = require('./package.json');
|
||||||
|
|
||||||
|
|
||||||
// ==========================================================
|
|
||||||
// SERVER SIDE OSC FORWARDING: WebSocket => OSC
|
|
||||||
// ==========================================================
|
|
||||||
|
|
||||||
// Listening to WebSocket messages
|
|
||||||
let banner = `
|
let banner = `
|
||||||
┏┳┓ ┏┓┏┓┏┓
|
┏┳┓ ┏┓┏┓┏┓
|
||||||
┃ ┏┓┏┓┏┓┏ ┃┃┗┓┃
|
┃ ┏┓┏┓┏┓┏ ┃┃┗┓┃
|
||||||
┻ ┗┛┣┛┗┛┛ ┗┛┗┛┗┛
|
┻ ┗┛┣┛┗┛┛ ┗┛┗┛┗┛
|
||||||
┛
|
┛
|
||||||
${pjson.version}\n`
|
${pjson.version}\n`
|
||||||
const wss = new WebSocket.Server({ port: 3000 });
|
|
||||||
console.log(banner)
|
console.log(banner)
|
||||||
console.log("Listening to: ws://localhost:3000. Open Topos.\n");
|
console.log("Listening to: ws://localhost:3000. Open Topos.\n");
|
||||||
|
|
||||||
|
// Listening to WebSocket messages
|
||||||
|
const wss = new WebSocket.Server({ port: 3000 });
|
||||||
|
|
||||||
// Setting up for message broadcasting
|
// Setting up for message broadcasting
|
||||||
wss.on("connection", function (ws) {
|
wss.on("connection", function (ws) {
|
||||||
console.log("> Client connected");
|
console.log("> Client connected");
|
||||||
ws.on("message", function (data) {
|
ws.on("message", function (data) {
|
||||||
try {
|
try {
|
||||||
const message = JSON.parse(data);
|
const message = JSON.parse(data);
|
||||||
sendOscMessage(message);
|
sendOscMessage(formatAndTypeMessage(message));
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("> Error processing message:", error);
|
console.error("> Error processing message:", error);
|
||||||
}
|
}
|
||||||
@ -41,10 +38,13 @@ wss.on("close", function () {
|
|||||||
console.log("> Closing websocket server")
|
console.log("> Closing websocket server")
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// Setting up for OSC messages
|
||||||
|
|
||||||
let udpPort = new osc.UDPPort({
|
let udpPort = new osc.UDPPort({
|
||||||
localAddress: "127.0.0.1",
|
localAddress: "0.0.0.0",
|
||||||
localPort: 3001,
|
localPort: 3000,
|
||||||
remoteAddress: "127.0.0.1",
|
metadata: true,
|
||||||
|
remoteAddress: "0.0.0.0",
|
||||||
remotePort: 57120,
|
remotePort: 57120,
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -60,9 +60,35 @@ udpPort.open();
|
|||||||
|
|
||||||
function sendOscMessage(message) {
|
function sendOscMessage(message) {
|
||||||
try {
|
try {
|
||||||
console.log("> Sending OSC message:", message);
|
|
||||||
udpPort.send(message);
|
udpPort.send(message);
|
||||||
|
console.log(message)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error("> Error sending OSC message:", error);
|
console.error("> Error sending OSC message:", error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const formatAndTypeMessage = (message) => {
|
||||||
|
let newMessage = {};
|
||||||
|
newMessage.address = message.address;
|
||||||
|
newMessage.timestamp = osc.timeTag(message.timetag);
|
||||||
|
|
||||||
|
args = [...Object.entries(message.args)].flat().map((arg) => {
|
||||||
|
if (typeof arg === 'string')
|
||||||
|
return {type: 's', value: arg};
|
||||||
|
if (typeof arg === 'number')
|
||||||
|
return {type: 'f', value: arg};
|
||||||
|
if (typeof arg === 'boolean')
|
||||||
|
return {type: 'f', value: arg ? 1 : 0};
|
||||||
|
})
|
||||||
|
|
||||||
|
newMessage.args = args
|
||||||
|
|
||||||
|
return newMessage;
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(formatAndTypeMessage({
|
||||||
|
address: '/baba',
|
||||||
|
port: 2000,
|
||||||
|
args: { s: 'fhardkick', dur: 0.5, port: 2000, address: 'baba' },
|
||||||
|
timetag: 1701696184583
|
||||||
|
}))
|
||||||
|
|||||||
@ -2,7 +2,7 @@ export let socket = new WebSocket("ws://localhost:3000");
|
|||||||
export interface OSCMessage {
|
export interface OSCMessage {
|
||||||
address: string;
|
address: string;
|
||||||
port: number;
|
port: number;
|
||||||
message: object;
|
args: object;
|
||||||
timetag: number;
|
timetag: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -492,7 +492,7 @@ export class SoundEvent extends AudibleEvent {
|
|||||||
sendToServer({
|
sendToServer({
|
||||||
address: oscAddress,
|
address: oscAddress,
|
||||||
port: oscPort,
|
port: oscPort,
|
||||||
message: event,
|
args: event,
|
||||||
timetag: Math.round(Date.now() + this.app.clock.deadline),
|
timetag: Math.round(Date.now() + this.app.clock.deadline),
|
||||||
} as OSCMessage);
|
} as OSCMessage);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user