typing does nothing at all

This commit is contained in:
2023-12-04 14:38:19 +01:00
parent d353d6cc1f
commit 583b3cb104
3 changed files with 41 additions and 15 deletions

View File

@ -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
}))

View File

@ -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;
} }

View File

@ -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);
} }