UNPKG

@sotatech/nest-quickfix

Version:

A powerful NestJS implementation of the FIX (Financial Information eXchange) protocol. Provides high-performance, reliable messaging for financial trading applications with built-in session management, message validation, and recovery mechanisms.

54 lines (53 loc) 2.04 kB
import { RoomManager } from './../services/room.manager'; import { EventEmitter } from 'events'; import { Message } from '../message/message'; import { Socket } from 'net'; import { Session as SessionInterface } from '../interfaces/session.interface'; import { SessionManager } from './session.manager'; import { SessionConfig } from './session.config'; export declare class Session extends EventEmitter implements SessionInterface { private readonly socket; private readonly roomManager; private readonly sessionManager; private readonly logger; private readonly sessionId; private readonly HEARTBEAT_TIMEOUT; private readonly TEST_REQUEST_TIMEOUT; private state; private nextOutgoingSeqNum; private nextExpectedSeqNum; private lastHeartbeatTime; private heartbeatTimer; private lastTestRequestId; private testRequestTimer; private config; private readonly handlers; constructor(config: SessionConfig, socket: Socket, roomManager: RoomManager, sessionManager: SessionManager); logon(): Promise<void>; logout(reason?: string): Promise<void>; sendMessage(message: Message): Promise<void>; handleMessage(message: Message): Promise<void>; private addRequiredFields; private setupHeartbeat; private setupErrorHandling; private handleLogon; private handleLogout; private handleHeartbeat; private handleTestRequest; private sendLogonResponse; private clearTestRequestTimer; handleDisconnect(): void; private clearTimers; getSessionId(): string; getConfig(): SessionConfig; getSocket(): Socket; getNextOutgoingSeqNum(): number; join(roomId: string): void; leave(roomId: string): void; getRooms(): string[]; registerLogonHandler(handler: Function): void; registerLogoutHandler(handler: Function): void; registerConnectedHandler(handler: Function): void; registerDisconnectedHandler(handler: Function): void; registerMessageHandler(handler: Function, msgType?: string): void; }