UNPKG

efriend

Version:
159 lines 5.11 kB
/// <reference types="node" /> import { Moment } from 'moment'; import { Secret, EFriendWsConfig, AJAX_ERROR, TR_TYPE, WEBSOCKET_HANDLER } from './efriend.type.js'; import { TRID_FIELD } from './efriend.constant.js'; export declare class EFriendWs { private readonly logger; private secret; private ws; private isOpen; private wsInterval; private wsIntervalTime; private wsKeys; private isKeepAlive; private wsHandlers; constructor({ secret, logger }: EFriendWsConfig); /** * @returns {Secret} secret */ getSecret(): Secret; /** * @param {Secret} secret */ setSecret(secret: Secret): void; getWebSocketHandlers(): Record<string, Array<WEBSOCKET_HANDLER>>; setWebSocketHandlers(wsHandlers: Record<string, Array<WEBSOCKET_HANDLER>>): void; addWebSocketHandler(event: string, name: string, handler: Function, isInternal?: boolean): void; delWebSocketHandler(event: string, name: string): void; /** * 한국투자증권 Web Socket을 초기화 한다. * * @returns {boolean} */ initialize(): Promise<boolean>; /** * Web Socket에서 open event 처리 */ private onOpen; private _onOpen_1; private sleep; private _onOpen_2; /** * Web Socket에서 message event 처리 * * @param {any} data Buffer | ArrayBuffer | Buffer[] * @param {boolean} isBinary * @returns {void} */ private onMessage; /** * Response data의 값을 검사 한다. * * @param {string} trid 트랜잭션 ID * @param {Array<TRID_FIELD>} fields 필드 목록 * @param {any} data 검사할 데이터 객체 * @throws {any} */ private checkResponsebody; /** * 필드의 값을 검사 한다. * * @param {TRID_FIELD} field 필드 정보 * @param {any} data field의 값을 포함하는 object * @param {string} trid tr_id * @param {boolean} allowException true. Exception 허용 * @throws {any} */ checkField(field: TRID_FIELD, data: any, trid: string, allowException?: boolean): void; /** * Web Socket에서 close event 처리 * * @param {number} code * @param {Buffer} reason */ private onClose; private _onClose_1; private _onClose_2; /** * Web Socket에서 error event 처리 * * @param {Error} err */ private onError; /** * Web Socket에서 upgrade event 처리 * * @param {any} res */ private onUpgrade; /** * Web Socket에서 ping event 처리 * * @param {Buffer} data */ private onPing; /** * Web Socket에서 pong event 처리 * * @param {Buffer} data */ private onPong; /** * Web Socket에서 unexpected-response event 처리 * * @param {unknown} req * @param {unknown} res */ private onUnexpectedResponse; /** * Web Socket의 상태를 확인 한다. * * @returns {Null} */ private checkAlive; /** * WebSocket 설정 * * @param {string} trid 거래 아이디 * @param {TR_TYPE} tr_type 거래 타입 * @param {string} tr_key 종목코드 또는 HTS ID * @returns {boolean} 처리 결과 */ webSocket(trid: string, tr_type: TR_TYPE, tr_key: string): Promise<boolean>; /** * WebSocket에서 받은 메시지 처리 */ onMessageDefault(trid: string, header: any | null, body: any | null, _data: any, _isBinary?: boolean): Promise<void>; /** * WebSocket에서 받은 메시지 처리 */ onMessage_001(trid: string, _header: any | null, body: any | null, _data: any, _isBinary?: boolean): Promise<void>; /** * 한국투자증권의 운영시간 여부를 확인 한다 * * @param {Moment} today * @returns {AJAX_ERROR} */ isOperatingTime(today?: Moment): AJAX_ERROR; /** * 평문을 암호문으로 변환 * * @param {string} data 평문 * @param {string} key Cipher Key * @param {string} iv Binary Like * @returns {string} 암호문 */ _encrypt(data: string, key: string, iv: string): string; /** * 암호문을 평문으로 변환 * * @param {string} data 암호문 * @param {string} key Cipher Key * @param {string} iv Binary Like * @returns {string} 평문 */ private decrypt; close(code: number, data: string | Buffer): void; } export default EFriendWs; //# sourceMappingURL=efriendWs.d.ts.map