helene
Version: 
Real-time Web Apps for Node.js
43 lines (42 loc) • 1.53 kB
TypeScript
import { EventEmitter2 } from 'eventemitter2';
import { Request, Response } from 'express';
import http from 'http';
import { RateLimiter } from 'limiter';
import { Socket } from 'socket.io';
import { Heartbeat } from './heartbeat';
import { RateLimit, Server } from './server';
export type ClientNodeContext = Record<string, any>;
export declare class ClientNode extends EventEmitter2 {
    uuid: string;
    isAuthenticated: boolean;
    meta: Record<string, any>;
    context: ClientNodeContext;
    userId: any;
    user: Record<string, any>;
    socket?: Socket;
    req?: Request;
    res?: Response;
    isServer: boolean;
    limiter: RateLimiter;
    server: Server;
    headers: Record<string, string>;
    remoteAddress: string | string[];
    userAgent: string;
    heartbeat: Heartbeat;
    constructor(server: Server, socket?: Socket, req?: Request, res?: Response, limit?: RateLimit);
    get authenticated(): boolean;
    set authenticated(authenticated: boolean);
    get readyState(): "open" | "closed" | "opening" | "closing";
    setId(uuid: string): void;
    setContext(context: ClientNodeContext): void;
    setTrackingProperties(socket: Socket | http.IncomingMessage): void;
    setUserId(): void;
    send(payload: Record<string, any> | string): void;
    result(payload: Record<string, any>): void;
    /**
     * @warning There is an `event` property already in the super class.
     */
    sendEvent(event: string, params?: any): void;
    error(payload: Record<string, any>): void;
    close(): void;
}