@nestjs/websockets

  • Version 8.1.1
  • Published
  • 77.5 kB
  • 3 dependencies
  • MIT license

Install

npm i @nestjs/websockets
yarn add @nestjs/websockets
pnpm add @nestjs/websockets

Overview

Nest - modern, fast, powerful node.js web framework (@websockets)

Index

Functions

function ConnectedSocket

ConnectedSocket: () => ParameterDecorator;

    function MessageBody

    MessageBody: {
    (): ParameterDecorator;
    (...pipes: any[]): ParameterDecorator;
    (propertyKey: string, ...pipes: any[]): ParameterDecorator;
    };
    • WebSockets message body parameter decorator.

    • WebSockets message body parameter decorator.

      Example:

      create(@MessageBody(new ValidationPipe()) createDto: CreateCatDto)

      Parameter pipes

      one or more pipes - either instances or classes - to apply to the bound parameter.

    • WebSockets message body parameter decorator. Extracts a property from the message payload object. May also apply pipes to the bound parameter.

      For example, extracting all params:

      findMany(@MessageBody() ids: string[])

      For example, extracting a single param:

      create(@MessageBody('data') createDto: { data: string })

      For example, extracting a single param with pipe:

      create(@MessageBody('data', new ValidationPipe()) createDto: { data: string })

      Parameter propertyKey

      name of single property to extract from the message payload

      Parameter pipes

      one or more pipes - either instances or classes - to apply to the bound parameter.

    function SubscribeMessage

    SubscribeMessage: <T = string>(message: T) => MethodDecorator;
    • Subscribes to messages that fulfils chosen pattern.

    function WebSocketGateway

    WebSocketGateway: {
    (port?: number): ClassDecorator;
    <T extends Record<string, any> = GatewayMetadata>(options?: T): ClassDecorator;
    <T extends Record<string, any> = GatewayMetadata>(
    port?: number,
    options?: T
    ): ClassDecorator;
    };
    • Decorator that marks a class as a Nest gateway that enables real-time, bidirectional and event-based communication between the browser and the server.

    function WebSocketServer

    WebSocketServer: () => PropertyDecorator;
    • Attaches native Web Socket Server to a given property.

    Classes

    class AbstractWsAdapter

    abstract class AbstractWsAdapter<
    TServer extends BaseWsInstance = any,
    TClient extends BaseWsInstance = any,
    TOptions = any
    > implements WebSocketAdapter<TServer, TClient, TOptions> {}

      constructor

      constructor(appOrHttpServer?: any);

        property httpServer

        protected readonly httpServer: any;

          method bindClientConnect

          bindClientConnect: (server: TServer, callback: Function) => void;

            method bindClientDisconnect

            bindClientDisconnect: (client: TClient, callback: Function) => void;

              method bindMessageHandlers

              abstract bindMessageHandlers: (
              client: TClient,
              handlers: WsMessageHandler[],
              transform: (data: any) => any
              ) => any;

                method close

                close: (server: TServer) => Promise<void>;

                  method create

                  abstract create: (port: number, options?: TOptions) => TServer;

                    method dispose

                    dispose: () => Promise<void>;

                      class BaseWsExceptionFilter

                      class BaseWsExceptionFilter<TError = any> implements WsExceptionFilter<TError> {}

                        method catch

                        catch: (exception: TError, host: any) => void;

                          method handleError

                          handleError: <TClient extends { emit: Function }>(
                          client: TClient,
                          exception: TError
                          ) => void;

                            method handleUnknownError

                            handleUnknownError: <TClient extends { emit: Function }>(
                            exception: TError,
                            client: TClient
                            ) => void;

                              method isExceptionObject

                              isExceptionObject: (err: any) => err is Error;

                                class WsException

                                class WsException extends Error {}

                                  constructor

                                  constructor(error: string | object);

                                    method getError

                                    getError: () => string | object;

                                      method initMessage

                                      initMessage: () => void;

                                        Interfaces

                                        interface BaseWsInstance

                                        interface BaseWsInstance {}

                                          property close

                                          close: Function;

                                            property on

                                            on: (event: string, callback: Function) => void;

                                              interface GatewayMetadata

                                              interface GatewayMetadata {}

                                                property adapter

                                                adapter?: any;
                                                • The adapter to use the in-memory adapter (https://github.com/socketio/socket.io-adapter)

                                                property allowEIO3

                                                allowEIO3?: boolean;
                                                • Whether to enable compatibility with Socket.IO v2 clients false

                                                property allowRequest

                                                allowRequest?: (
                                                req: any,
                                                fn: (err: string | null | undefined, success: boolean) => void
                                                ) => void;
                                                • A function that receives a given handshake or upgrade request as its first parameter, and can decide whether to continue or not. The second argument is a function that needs to be called with the decided information: fn(err, success), where success is a boolean value where false means that the request is rejected, and err is an error code.

                                                property allowUpgrades

                                                allowUpgrades?: boolean;
                                                • Whether to allow transport upgrades true

                                                property connectTimeout

                                                connectTimeout?: number;
                                                • How many ms before a client without namespace is closed 45000

                                                property cookie

                                                cookie?: any | boolean;
                                                • Configuration of the cookie that contains the client sid to send as part of handshake response headers. This cookie might be used for sticky-session. Defaults to not sending any cookie. false

                                                property cors

                                                cors?: CorsOptions;
                                                • The options that will be forwarded to the cors module

                                                property destroyUpgrade

                                                destroyUpgrade?: boolean;
                                                • Destroy unhandled upgrade requests true

                                                property destroyUpgradeTimeout

                                                destroyUpgradeTimeout?: number;
                                                • Milliseconds after which unhandled requests are ended 1000

                                                property httpCompression

                                                httpCompression?: boolean | object;
                                                • Parameters of the http compression for the polling transports (see zlib api docs). Set to false to disable. true

                                                property initialPacket

                                                initialPacket?: any;
                                                • An optional packet which will be concatenated to the handshake packet emitted by Engine.IO.

                                                property maxHttpBufferSize

                                                maxHttpBufferSize?: number;
                                                • How many bytes or characters a message can be, before closing the session (to avoid DoS). 1e5 (100 KB)

                                                property namespace

                                                namespace?: string | RegExp;
                                                • The name of a namespace

                                                property parser

                                                parser?: any;
                                                • The parser to use the default parser (https://github.com/socketio/socket.io-parser)

                                                property path

                                                path?: string;
                                                • Name of the path to capture "/socket.io"

                                                property perMessageDeflate

                                                perMessageDeflate?: boolean | object;
                                                • Parameters of the WebSocket permessage-deflate extension (see ws module api docs). Set to false to disable. false

                                                property pingInterval

                                                pingInterval?: number;
                                                • How many ms before sending a new ping packet 25000

                                                property pingTimeout

                                                pingTimeout?: number;
                                                • How many ms without a pong packet to consider the connection closed 5000

                                                property serveClient

                                                serveClient?: boolean;
                                                • Whether to serve the client files true

                                                property transports

                                                transports?: Array<'polling' | 'websocket'>;
                                                • The low-level transports that are enabled ["polling", "websocket"]

                                                property upgradeTimeout

                                                upgradeTimeout?: number;
                                                • How many ms before an uncompleted transport upgrade is cancelled 10000

                                                property wsEngine

                                                wsEngine?: string;
                                                • What WebSocket server implementation to use. Specified module must conform to the ws interface (see ws module api docs). Default value is ws. An alternative c++ addon is also available by installing uws module.

                                                interface MessageMappingProperties

                                                interface MessageMappingProperties {}

                                                  property callback

                                                  callback: (...args: any[]) => Observable<any> | Promise<any> | any;

                                                    property message

                                                    message: any;

                                                      property methodName

                                                      methodName: string;

                                                        interface OnGatewayConnection

                                                        interface OnGatewayConnection<T = any> {}

                                                          method handleConnection

                                                          handleConnection: (client: T, ...args: any[]) => any;

                                                            interface OnGatewayDisconnect

                                                            interface OnGatewayDisconnect<T = any> {}

                                                              method handleDisconnect

                                                              handleDisconnect: (client: T) => any;

                                                                interface OnGatewayInit

                                                                interface OnGatewayInit<T = any> {}

                                                                  method afterInit

                                                                  afterInit: (server: T) => any;

                                                                    interface ServerAndEventStreamsHost

                                                                    interface ServerAndEventStreamsHost<T = any> {}

                                                                      property connection

                                                                      connection: Subject<any>;

                                                                        property disconnect

                                                                        disconnect: Subject<any>;

                                                                          property init

                                                                          init: ReplaySubject<T>;

                                                                            property server

                                                                            server: T;

                                                                              interface WebSocketServerOptions

                                                                              interface WebSocketServerOptions {}

                                                                                property namespace

                                                                                namespace: string;

                                                                                  property port

                                                                                  port: number;

                                                                                    interface WsResponse

                                                                                    interface WsResponse<T = any> {}

                                                                                      property data

                                                                                      data: T;

                                                                                        property event

                                                                                        event: string;

                                                                                          Package Files (17)

                                                                                          Dependencies (3)

                                                                                          Dev Dependencies (2)

                                                                                          Peer Dependencies (5)

                                                                                          Badge

                                                                                          To add a badge like this onejsDocs.io badgeto your package's README, use the codes available below.

                                                                                          You may also use Shields.io to create a custom badge linking to https://www.jsdocs.io/package/@nestjs/websockets.

                                                                                          • Markdown
                                                                                            [![jsDocs.io](https://img.shields.io/badge/jsDocs.io-reference-blue)](https://www.jsdocs.io/package/@nestjs/websockets)
                                                                                          • HTML
                                                                                            <a href="https://www.jsdocs.io/package/@nestjs/websockets"><img src="https://img.shields.io/badge/jsDocs.io-reference-blue" alt="jsDocs.io"></a>