UNPKG

@loopback/socketio

Version:

LoopBack's WebSocket server based on socket.io

73 lines (72 loc) 2.54 kB
import { Application, Binding, BindingFilter, Constructor, Context } from '@loopback/core'; import cors from 'cors'; import { Server, ServerOptions, Socket } from 'socket.io'; import { SocketIoMetadata } from './decorators'; export type SockIOMiddleware = (socket: Socket, fn: (err?: any) => void) => void; export declare const getNamespaceKeyForName: (name: string) => string; /** * A binding filter to match socket.io controllers * @param binding - Binding object */ export declare const socketIoControllers: BindingFilter; export interface SocketIoServerOptions { httpServerOptions?: HttpServerResolvedOptions; socketIoOptions?: ServerOptions; } /** * A socketio server */ export declare class SocketIoServer extends Context { app: Application; protected options: SocketIoServerOptions; private controllers; private httpServer; private readonly io; readonly config: HttpServerResolvedOptions; constructor(app: Application, options?: SocketIoServerOptions); get listening(): boolean; /** * Register a sock.io middleware function * @param fn */ use(fn: SockIOMiddleware): Server<import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, any>; get url(): string; /** * Register a socketio controller * @param controllerClass * @param meta */ route(controllerClass: Constructor<object>, meta?: SocketIoMetadata | string | RegExp): Server<import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, any> | import("socket.io").Namespace<import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, import("socket.io").DefaultEventsMap, any>; /** * Create socket handler from the controller class * @param controllerClass */ private createSocketHandler; /** * Register a socket.io controller * @param controllerClass */ controller(controllerClass: Constructor<unknown>): Binding<unknown>; /** * Discover all socket.io controllers and register routes */ discoverAndRegister(): void; /** * Start the socketio server */ start(): Promise<void>; /** * Stop the socketio server */ stop(): Promise<void>; } /** * Valid configuration for the HttpServer constructor. */ export interface HttpServerResolvedOptions { host?: string; port: number; path?: string; basePath?: string; cors: cors.CorsOptions; }