UNPKG

@underpostnet/underpost

Version:

Underpost Platform — end-to-end CI/CD and application-delivery toolchain CLI. Covers bare metal, Kubernetes, K3s, kubeadm, LXD, container/image orchestration, secrets, databases, cron jobs, monitoring, SSH, runners, PWA + Workbox delivery, and release orc

40 lines (32 loc) 1.42 kB
/** * Default WebSocket server factory — initializes the main channel and creates the Socket.IO server. * @module ws/default/default.ws.server */ 'use strict'; import { IoServer } from '../IoServer.js'; import { DefaultWsConnectionHandler } from './default.ws.connection.js'; import { DefaultWsMainChannel } from './channels/default.ws.main.js'; import { resolveHostKeyContext } from '../../server/conf.js'; /** * @class DefaultWsServer * @classdesc Creates the default WebSocket server with a single main channel. */ class DefaultWsServer { /** * Initializes the main channel and creates the Socket.IO server. * @param {import('http').Server} httpServer * @param {Object} options * @param {string} options.host * @param {string} options.path * @returns {{ options: import('socket.io').ServerOptions, ioServer: import('socket.io').Server, meta: ImportMeta }} */ static create(httpServer, options) { const { host, path } = options; const hostKeyContext = resolveHostKeyContext({ host, path }); DefaultWsMainChannel.init(hostKeyContext); return IoServer.create(httpServer, options, (socket) => DefaultWsConnectionHandler.handle(socket, hostKeyContext)); } } /** Required by Express.js dynamic import: `const { createIoServer } = await import(...)` */ const createIoServer = DefaultWsServer.create.bind(DefaultWsServer); export { DefaultWsServer, createIoServer };