123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- export interface PogWebsocketListener {
- OnMessage(data: any): void;
- }
- export class PogWebsocket {
- public static create(url: string, message: PogWebsocketListener) {
- let pogWebsocket = new PogWebsocket();
- pogWebsocket.init(url, message);
- return pogWebsocket;
- }
- public get connected(): boolean {
- return this._connected;
- }
- ping() {
- if (!this._connected) {
- return;
- }
- let pingData = "ping";
- this._ws.send(pingData);
- }
- // private _url: string;
- private _ws: WebSocket;
- private _connected: boolean = false;
- private _message: PogWebsocketListener;
- private init(url: string, message: PogWebsocketListener) {
- // this._url = url;
- this._message = message;
- this._ws = new WebSocket(url);
- let self = this;
- this._ws.onopen = this.onOpen.bind(this);
- this._ws.onmessage = this.onMessage.bind(this);
- this._ws.onclose = this.onClose.bind(this);
- this._ws.onerror = this.onError.bind(this);
- }
- private onOpen() {
- console.log("onOpen");
- this._connected = true;
- // this._ws.send(
- // JSON.stringify({
- // type: "test",
- // data: "test",
- // })
- // );
- }
- private onMessage(data: MessageEvent) {
- if (data.data == "pong") {
- return;
- }
- this._message.OnMessage(data);
- }
- private onClose(event: CloseEvent) {
- console.log("onClose", event);
- this._connected = false;
- }
- private onError(event: Event) {
- console.log("onError", event);
- this._connected = false;
- }
- public async send(data: any) {
- if (!this._connected) {
- return;
- }
- await this._ws.send(data);
- }
- public close() {
- this._ws.close();
- }
- }
|