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;
}