UNPKG

@chatie/angular

Version:

Wechaty Component NgModule

90 lines (89 loc) 2.75 kB
import { Observable, Subject } from 'rxjs'; export declare type WechatyEventName = 'scan' | 'login' | 'logout' | 'reset' | 'shutdown' | 'ding' | 'dong' | 'message' | 'heartbeat' | 'update' | 'error'; export declare type ServerEventName = 'sys' | 'botie'; export declare type IoEventName = 'raw' | WechatyEventName | ServerEventName; export interface IoEvent { name: IoEventName; payload: any; } export declare enum ReadyState { CLOSED, CLOSING, CONNECTING, OPEN } export interface IoServiceSnapshot { readyState: ReadyState; event: IoEvent; } export declare class IoService { event: Subject<IoEvent>; private _readyState; get readyState(): Observable<ReadyState>; snapshot: IoServiceSnapshot; private autoReconnect; private log; private readonly CONNECT_TIMEOUT; private readonly ENDPOINT; private readonly PROTOCOL; private _token; private _websocket; private moObserver; private mtObserver; private sendBuffer; private state; constructor(); init(): Promise<void>; token(): string; token(newToken: string): void; start(): Promise<void>; stop(): Promise<void>; restart(): Promise<void>; private initStateDealer; /** * Creates a subject from the specified observer and observable. * - https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/subjects/subject.md * Create an Rx.Subject using Subject.create that allows onNext without subscription * A socket implementation (example, don't use) * - http://stackoverflow.com/a/34862286/1123955 */ private initRxSocket; private connectRxSocket; private endPoint; /****************************************************************** * * State Event Listeners * */ private stateOnOpen; /****************************************************************** * * Io RPC Methods * */ rpcDing(payload: any): Promise<any>; rpcUpdate(payload: any): Promise<void>; /****************************************************************** * * Socket Actions * */ private socketClose; private socketSend; private socketSendBuffer; private socketUpdateState; /****************************************************************** * * Socket Events Listener * */ private socketOnMessage; private socketOnError; /** * https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent * code: 1006 CLOSE_ABNORMAL * - Reserved. Used to indicate that a connection was closed abnormally * (that is, with no close frame being sent) when a status code is expected. */ private socketOnClose; }