import WebSocket from 'ws'; import { BotInstance } from '../BotInstance'; import { MessageSource } from './MessageSource'; export default class WebSocketSource extends MessageSource { type: string; socket?: WebSocket; private compress; private helloTimeout; /** * -1 错误 0 未连接 1 拉取gateway 2 连接gateway 3 已连接gateway 4 已连接 5 心跳超时 */ private stage; private retryTimes; private url?; sessionId: string | undefined; heartbeatInterval: any; heartbeatTimeout: any; constructor(self: BotInstance, compress?: boolean); connect(): Promise; private getGateWay; private dataHandler; private onData; private onOpen; private connectSocket; private onHelloTimeout; private nextStage; private retry; private handleHelloPacket; private handleReconnectPacket; private startHeartbeat; private heartbeat; private onHeartbeatTimeout; private safeCloseSocket; }