node-osc
Version:
pyOSC inspired library for sending and receiving OSC messages
98 lines • 3.07 kB
text/typescript
export default Server;
/**
* OSC Server for receiving messages and bundles over UDP.
*
* Emits the following events:
* - 'listening': Emitted when the server starts listening
* - 'message': Emitted when an OSC message is received (receives msg array and rinfo object)
* - 'bundle': Emitted when an OSC bundle is received (receives bundle object and rinfo object)
* - 'error': Emitted when a socket error or decoding error occurs (receives error and rinfo)
* - Address-specific events: Emitted for each message address (e.g., '/test')
*
* @class
* @extends EventEmitter
*
* @fires Server#listening
* @fires Server#message
* @fires Server#bundle
* @fires Server#error
*
* @example
* // Create and listen for messages
* const server = new Server(3333, '0.0.0.0', () => {
* console.log('Server is listening');
* });
*
* server.on('message', (msg, rinfo) => {
* console.log('Message:', msg);
* console.log('From:', rinfo.address, rinfo.port);
* });
*
* @example
* // Using async/await with events.once
* import { once } from 'node:events';
*
* const server = new Server(3333, '0.0.0.0');
* await once(server, 'listening');
*
* server.on('message', (msg) => {
* console.log('Message:', msg);
* });
*
* @example
* // Listen for specific OSC addresses
* server.on('/note', (msg) => {
* const [address, pitch, velocity] = msg;
* console.log(`Note: ${pitch}, Velocity: ${velocity}`);
* });
*/
declare class Server extends EventEmitter<[never]> {
/**
* Create an OSC Server.
*
* @param {number} port - The port to listen on.
* @param {string} [host='127.0.0.1'] - The host address to bind to. Use '0.0.0.0' to listen on all interfaces.
* @param {Function} [cb] - Optional callback function called when server starts listening.
*
* @example
* // Basic server
* const server = new Server(3333);
*
* @example
* // Server on all interfaces with callback
* const server = new Server(3333, '0.0.0.0', () => {
* console.log('Server started');
* });
*
* @example
* // Host parameter can be omitted, callback as second parameter
* const server = new Server(3333, () => {
* console.log('Server started on 127.0.0.1');
* });
*/
constructor(port: number, host?: string, cb?: Function);
port: number;
host: string;
_sock: import("dgram").Socket;
/**
* Close the server socket.
*
* This method can be used with either a callback or as a Promise.
*
* @param {Function} [cb] - Optional callback function called when socket is closed.
* @returns {Promise<void>|undefined} Returns a Promise if no callback is provided.
*
* @example
* // With callback
* server.close((err) => {
* if (err) console.error(err);
* });
*
* @example
* // With async/await
* await server.close();
*/
close(cb?: Function): Promise<void> | undefined;
}
import { EventEmitter } from 'node:events';
//# sourceMappingURL=Server.d.mts.map