@brainstack/bridge-server
Advanced tools
Comparing version 2.0.7 to 2.0.8
@@ -36,6 +36,6 @@ "use strict"; | ||
this.options = options; | ||
this.logger = options.logger || (0, log_1.createLogger)(); | ||
this.logger = options.logger || (0, log_1.createLogger)(5); | ||
this.eventHandlers = new Map(); | ||
this.uuidToSocket = new Map(); | ||
this.logger.verbose('BridgeServer initialized with options:', options); | ||
this.logger.verbose('BridgeServer initialized with options:', options, 'Port:', this.port, 'Host:', this.host); | ||
} | ||
@@ -45,7 +45,5 @@ setupListeners() { | ||
(_a = this.wss) === null || _a === void 0 ? void 0 : _a.on('connection', (ws) => { | ||
var _a, _b; | ||
this.logger.verbose('🔗 Client connected'); | ||
(_b = (_a = this.options).onConnection) === null || _b === void 0 ? void 0 : _b.call(_a, ws); | ||
this.logger.verbose('🔗 New client connection established.'); | ||
ws.on('message', (payload) => { | ||
this.logger.verbose('💬 Payload Received:', payload.toString()); | ||
this.logger.verbose('💬 Received payload from client:', payload.toString()); | ||
this.processPayload(payload, ws); | ||
@@ -55,3 +53,3 @@ }); | ||
var _a, _b; | ||
this.logger.verbose('⚠️ Connection closed'); | ||
this.logger.verbose('⚠️ Client connection closed.'); | ||
(_b = (_a = this.options).onClose) === null || _b === void 0 ? void 0 : _b.call(_a); | ||
@@ -61,3 +59,3 @@ }); | ||
var _a, _b; | ||
this.logger.error('❌ Error:', error); | ||
this.logger.error('❌ Error occurred on client connection:', error); | ||
(_b = (_a = this.options).onError) === null || _b === void 0 ? void 0 : _b.call(_a, error); | ||
@@ -68,2 +66,3 @@ }); | ||
processPayload(payloadBuffer, socket) { | ||
this.logger.verbose('Processing received payload:', payloadBuffer.toString()); | ||
let parsedPayload; | ||
@@ -73,5 +72,12 @@ try { | ||
parsedPayload = JSON.parse(payloadString); | ||
this.logger.verbose('Parsed payload successfully:', parsedPayload); | ||
if (parsedPayload && parsedPayload.event) { | ||
const handlers = this.eventHandlers.get(parsedPayload.event); | ||
handlers === null || handlers === void 0 ? void 0 : handlers.forEach(handler => handler(parsedPayload.data, socket)); | ||
if (handlers) { | ||
this.logger.verbose(`Found ${handlers.length} handlers for event: ${parsedPayload.event}`); | ||
handlers.forEach(handler => handler(parsedPayload.data, socket)); | ||
} | ||
else { | ||
this.logger.warn(`No handlers found for event: ${parsedPayload.event}`); | ||
} | ||
} | ||
@@ -87,4 +93,6 @@ } | ||
this.eventHandlers.set(event, []); | ||
this.logger.verbose(`Created new event handler list for event: ${event}`); | ||
} | ||
(_a = this.eventHandlers.get(event)) === null || _a === void 0 ? void 0 : _a.push(handler); | ||
this.logger.verbose(`Handler added for event: ${event}`); | ||
} | ||
@@ -94,11 +102,17 @@ start() { | ||
this.setupListeners(); | ||
this.logger.log(`Server started at ws://${this.host}:${this.port}`); | ||
this.logger.log(`WebSocket Server started at ws://${this.host}:${this.port}`); | ||
} | ||
emitToUUID(uuid, event, data) { | ||
this.logger.verbose(`Attempting to send event: ${event} to UUID: ${uuid}`); | ||
const socket = this.uuidToSocket.get(uuid); | ||
if (socket && socket.readyState === ws_1.default.OPEN) { | ||
socket.send(JSON.stringify({ event, data })); | ||
this.logger.verbose(`Event: ${event} sent to UUID: ${uuid}`); | ||
} | ||
else { | ||
this.logger.warn(`Cannot send event: ${event} to UUID: ${uuid}. Socket not open or not found.`); | ||
} | ||
} | ||
attachSocket(uuid, socket) { | ||
this.logger.verbose(`Attaching socket to UUID: ${uuid}`); | ||
this.uuidToSocket.set(uuid, socket); | ||
@@ -105,0 +119,0 @@ } |
{ | ||
"name": "@brainstack/bridge-server", | ||
"version": "2.0.7", | ||
"version": "2.0.8", | ||
"description": "Brainstack Bridge Server", | ||
@@ -31,7 +31,7 @@ "main": "dist/index.js", | ||
"dependencies": { | ||
"@brainstack/hub": "^1.1.56", | ||
"@brainstack/log": "^1.1.59", | ||
"@brainstack/hub": "^1.1.57", | ||
"@brainstack/log": "^1.1.60", | ||
"ws": "^8.13.0" | ||
}, | ||
"gitHead": "7e2924d0a027e6a62dad5620b455f635cfe2b277" | ||
"gitHead": "d50064fcba0d7e47d656b9eeb8654310caa11095" | ||
} |
@@ -21,7 +21,7 @@ import { createLogger, Logger } from '@brainstack/log'; | ||
this.options = options; | ||
this.logger = options.logger || createLogger(); | ||
this.logger = options.logger || createLogger(5); | ||
this.eventHandlers = new Map(); | ||
this.uuidToSocket = new Map(); | ||
this.logger.verbose('BridgeServer initialized with options:', options); | ||
this.logger.verbose('BridgeServer initialized with options:', options, 'Port:', this.port, 'Host:', this.host); | ||
} | ||
@@ -31,7 +31,6 @@ | ||
this.wss?.on('connection', (ws: WebSocket) => { | ||
this.logger.verbose('🔗 Client connected'); | ||
this.options.onConnection?.(ws); | ||
this.logger.verbose('🔗 New client connection established.'); | ||
ws.on('message', (payload: Buffer) => { | ||
this.logger.verbose('💬 Payload Received:', payload.toString()); | ||
this.logger.verbose('💬 Received payload from client:', payload.toString()); | ||
this.processPayload(payload, ws); | ||
@@ -41,3 +40,3 @@ }); | ||
ws.on('close', () => { | ||
this.logger.verbose('⚠️ Connection closed'); | ||
this.logger.verbose('⚠️ Client connection closed.'); | ||
this.options.onClose?.(); | ||
@@ -47,3 +46,3 @@ }); | ||
ws.on('error', (error: Error) => { | ||
this.logger.error('❌ Error:', error); | ||
this.logger.error('❌ Error occurred on client connection:', error); | ||
this.options.onError?.(error); | ||
@@ -55,2 +54,3 @@ }); | ||
private processPayload(payloadBuffer: Buffer, socket: WebSocket): void { | ||
this.logger.verbose('Processing received payload:', payloadBuffer.toString()); | ||
let parsedPayload; | ||
@@ -60,6 +60,12 @@ try { | ||
parsedPayload = JSON.parse(payloadString); | ||
this.logger.verbose('Parsed payload successfully:', parsedPayload); | ||
if (parsedPayload && parsedPayload.event) { | ||
const handlers = this.eventHandlers.get(parsedPayload.event); | ||
handlers?.forEach(handler => handler(parsedPayload.data, socket)); | ||
if(handlers) { | ||
this.logger.verbose(`Found ${handlers.length} handlers for event: ${parsedPayload.event}`); | ||
handlers.forEach(handler => handler(parsedPayload.data, socket)); | ||
} else { | ||
this.logger.warn(`No handlers found for event: ${parsedPayload.event}`); | ||
} | ||
} | ||
@@ -74,4 +80,6 @@ } catch (error) { | ||
this.eventHandlers.set(event, []); | ||
this.logger.verbose(`Created new event handler list for event: ${event}`); | ||
} | ||
this.eventHandlers.get(event)?.push(handler); | ||
this.logger.verbose(`Handler added for event: ${event}`); | ||
} | ||
@@ -82,9 +90,13 @@ | ||
this.setupListeners(); | ||
this.logger.log(`Server started at ws://${this.host}:${this.port}`); | ||
this.logger.log(`WebSocket Server started at ws://${this.host}:${this.port}`); | ||
} | ||
public emitToUUID(uuid: string, event: string, data: any): void { | ||
this.logger.verbose(`Attempting to send event: ${event} to UUID: ${uuid}`); | ||
const socket = this.uuidToSocket.get(uuid); | ||
if (socket && socket.readyState === WebSocket.OPEN) { | ||
socket.send(JSON.stringify({ event, data })); | ||
this.logger.verbose(`Event: ${event} sent to UUID: ${uuid}`); | ||
} else { | ||
this.logger.warn(`Cannot send event: ${event} to UUID: ${uuid}. Socket not open or not found.`); | ||
} | ||
@@ -94,2 +106,3 @@ } | ||
public attachSocket(uuid: string, socket: WebSocket): void { | ||
this.logger.verbose(`Attaching socket to UUID: ${uuid}`); | ||
this.uuidToSocket.set(uuid, socket); | ||
@@ -96,0 +109,0 @@ } |
138626
439
Updated@brainstack/hub@^1.1.57
Updated@brainstack/log@^1.1.60