@chatie/angular
Version:
Wechaty Component NgModule
90 lines (89 loc) • 2.75 kB
TypeScript
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;
}