UNPKG

@johnf/react-native-owl

Version:
46 lines (45 loc) 1.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.startWebSocketServer = exports.createWebSocketClient = void 0; var _ws = _interopRequireDefault(require("ws")); var _constants = require("./constants.js"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; } const startWebSocketServer = async logger => { const wss = new _ws.default.Server({ port: _constants.WEBSOCKET_PORT }); return new Promise(resolve => { wss.on('connection', ws => { ws.on('message', message => { logger.info(`[OWL - WebSocket] The server received a message: ${message.toString()}`); wss.clients.forEach(client => { if (client !== ws && client.readyState === _ws.default.OPEN) { client.send(message.toString()); } }); }); ws.on('error', error => { logger.error(`[OWL - WebSocket] Error:`, error); }); }); wss.on('listening', () => { logger.info(`[OWL - WebSocket] Listening on port ${wss.options.port}.`); return resolve(wss); }); }); }; exports.startWebSocketServer = startWebSocketServer; const createWebSocketClient = async (logger, onMessage) => { const wsClient = new _ws.default(`ws://localhost:${_constants.WEBSOCKET_PORT}`); return new Promise(resolve => { wsClient.on('open', () => resolve(wsClient)); wsClient.on('message', message => { logger.info(`[OWL - WebSocket] The client received a message: ${message.toString()}.`); onMessage(message.toString()); }); }); }; exports.createWebSocketClient = createWebSocketClient; //# sourceMappingURL=websocket.js.map