@brainstack/bridge-server
Advanced tools
Comparing version 1.0.3 to 1.0.4
{ | ||
"name": "@brainstack/bridge-server", | ||
"version": "1.0.3", | ||
"version": "1.0.4", | ||
"description": "Brainstack Bridge Server", | ||
@@ -31,7 +31,7 @@ "main": "dist/index.js", | ||
"dependencies": { | ||
"@brainstack/hub": "^1.1.46", | ||
"@brainstack/log": "^1.1.49", | ||
"@brainstack/hub": "^1.1.47", | ||
"@brainstack/log": "^1.1.50", | ||
"ws": "^8.13.0" | ||
}, | ||
"gitHead": "bd4172f48822eb7ccfded265f9fb5644bd519ea9" | ||
"gitHead": "27092c6561d14f8ee745224a48e70b3ced8ab371" | ||
} |
@@ -1,5 +0,5 @@ | ||
import { WebSocket, Server } from "ws"; | ||
import { createEventHub, EventHub } from "@brainstack/hub"; | ||
import { Logger, createLogger } from "@brainstack/log"; | ||
import { BridgeServerFactory, BridgeServerOption } from "./abstraction"; | ||
import { WebSocket, Server } from 'ws'; | ||
import { createEventHub, EventHub } from '@brainstack/hub'; | ||
import { Logger, createLogger } from '@brainstack/log'; | ||
import { BridgeServerFactory, BridgeServerOption } from './abstraction'; | ||
@@ -12,5 +12,9 @@ /** | ||
*/ | ||
const onListening = (logger: Logger, hub: EventHub, options: { host: string; port: number }): void => { | ||
logger.info(`🚀 Bridge server started on ${options.host}:${options.port}`); | ||
hub.emit("start"); | ||
const onListening = ( | ||
logger: Logger, | ||
hub: EventHub, | ||
options: { host: string; port: number } | ||
): void => { | ||
logger.info(`🚀 Bridge server started on ${options.host}:${options.port}`); | ||
hub.emit('start'); | ||
}; | ||
@@ -25,11 +29,14 @@ | ||
const onConnection = (logger: Logger, hub: EventHub, ws: WebSocket): void => { | ||
const { remoteAddress, remotePort } = ws as any; | ||
logger.info(`🔗 Client connected: ${remoteAddress}:${remotePort}`); | ||
hub.emit("connection", ws); | ||
const { url } = ws; | ||
ws.on("message", (message: any) => { | ||
const { event = "unknown", ...payload } = JSON.parse(message.toString()); | ||
logger.log(`💬 Message Received: `, event, payload); | ||
hub.emit(event, payload); | ||
}); | ||
logger.info(`🔗 Client connected: ${url}`); | ||
hub.emit('connection', ws); | ||
ws.on('message', (message: any) => { | ||
const { event = 'unknown', ...payload } = JSON.parse( | ||
message?.data?.toString() || '{}' | ||
); | ||
logger.log(`💬 Message Received: `, event, payload); | ||
hub.emit(event, payload); | ||
}); | ||
}; | ||
@@ -43,4 +50,4 @@ | ||
const onClose = (logger: Logger, hub: EventHub): void => { | ||
logger.info(`⚠️ Bridge server closed`); | ||
hub.emit("close"); | ||
logger.info(`⚠️ Bridge server closed`); | ||
hub.emit('close'); | ||
}; | ||
@@ -55,4 +62,4 @@ | ||
const onError = (logger: Logger, hub: EventHub, error: any): void => { | ||
logger.error(`❌Bridge server error: ${error}`); | ||
hub.emit("error", error); | ||
logger.error(`❌Bridge server error: ${error}`); | ||
hub.emit('error', error); | ||
}; | ||
@@ -71,37 +78,39 @@ | ||
export const createBridgeServer: BridgeServerFactory = (options?: BridgeServerOption) => { | ||
const logger = options?.logger ?? createLogger(); | ||
const hub = options?.hub ?? createEventHub(); | ||
const ws_server = options?.ws_server; | ||
export const createBridgeServer: BridgeServerFactory = ( | ||
options?: BridgeServerOption | ||
) => { | ||
const logger = options?.logger ?? createLogger(); | ||
const hub = options?.hub ?? createEventHub(); | ||
const ws_server = options?.ws_server; | ||
/** | ||
* Starts listening for incoming connections on the specified host and port. | ||
* | ||
* @function | ||
* @param {object} options - Configuration options for the server. | ||
* @param {string} options.host - Host address to listen on. | ||
* @param {number} options.port - Port number to listen on. | ||
* @returns {WebSocket.Server} - The WebSocket server instance used for connections. | ||
*/ | ||
const listen = (options: { host: string; port: number }): Server => { | ||
const server = ws_server || new Server(options); | ||
/** | ||
* Starts listening for incoming connections on the specified host and port. | ||
* | ||
* @function | ||
* @param {object} options - Configuration options for the server. | ||
* @param {string} options.host - Host address to listen on. | ||
* @param {number} options.port - Port number to listen on. | ||
* @returns {WebSocket.Server} - The WebSocket server instance used for connections. | ||
*/ | ||
const listen = (options: { host: string; port: number }): Server => { | ||
const server = ws_server || new Server(options); | ||
server.on("listening", () => onListening(logger, hub, options)); | ||
server.on('listening', () => onListening(logger, hub, options)); | ||
server.on("connection", (ws: WebSocket) => onConnection(logger, hub, ws)); | ||
server.on('connection', (ws: WebSocket) => onConnection(logger, hub, ws)); | ||
server.on("close", () => onClose(logger, hub)); | ||
server.on('close', () => onClose(logger, hub)); | ||
server.on("error", (error: any) => onError(logger, hub, error)); | ||
server.on('error', (error: any) => onError(logger, hub, error)); | ||
return server; | ||
}; | ||
return server; | ||
}; | ||
const close = (): void => { | ||
if (ws_server) { | ||
ws_server.close(); | ||
} | ||
}; | ||
const close = (): void => { | ||
if (ws_server) { | ||
ws_server.close(); | ||
} | ||
}; | ||
return { listen, close, logger, hub, ws_server }; | ||
}; | ||
return { listen, close, logger, hub, ws_server }; | ||
}; |
583
24158
Updated@brainstack/hub@^1.1.47
Updated@brainstack/log@^1.1.50