efriend
Version:
EFriend Node Library
159 lines • 5.11 kB
TypeScript
/// <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