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