UNPKG

@loopeco/socketio

Version:

A enhanced LoopBack's WebSocket server based on socket.io

42 lines (41 loc) 2.23 kB
import { Context, ControllerClass } from '@loopback/core'; import { HttpServerOptions } from '@loopback/http-server'; import { Socket } from 'socket.io'; import { ExtendedError } from 'socket.io/dist/namespace'; import { MiddlewareContext } from '@loopback/express'; import { DefaultEventsMap, EventsMap } from 'socket.io/dist/typed-events'; export declare type SocketIoOptions = HttpServerOptions; export interface SocketIoSequence { handle(methodName: string, args: unknown[], done: Function): Promise<void>; } export declare type SocketIoDoneFunction = (response: unknown) => Promise<void>; export declare type SocketIoInvokeMethod = (context: Context, controller: ControllerClass, methodName: string, args: unknown[]) => unknown; export declare type SocketIoSendMethod = (done: Function, result: unknown) => unknown; export declare type SocketIoRejectMethod = (done: Function, error: Error) => unknown; export interface SocketIoNextFunction { (err?: ExtendedError): void; } export interface SocketIoConnectionHandler<ListenEvents extends EventsMap = DefaultEventsMap, EmitEvents extends EventsMap = ListenEvents, ServerSideEvents extends EventsMap = DefaultEventsMap> { (socket: Socket<ListenEvents, EmitEvents, ServerSideEvents>, next: SocketIoNextFunction): void; } export interface SocketIoHandlerContext { socket: Socket; } /** * A per-connection Context to combine an IoC container with handler * context (socket, etc.). */ export declare class SocketIoConnectionContext extends MiddlewareContext implements SocketIoHandlerContext { readonly socket: Socket; /** * Constructor for `SocketContext` * @param socket - SocketIO socket object * @param parent - Parent context * @param name - Name of the middleware context */ constructor(socket: Socket, parent?: Context, name?: string); protected setupBindings(): void; } export declare function isConnectionContext(ctx: any): ctx is SocketIoConnectionContext; export declare function getConnectionContext<T extends SocketIoConnectionContext = SocketIoConnectionContext>(socket: Socket): T | undefined; export declare function getSocket(context: Context): Socket<DefaultEventsMap, DefaultEventsMap, DefaultEventsMap>;