UNPKG

commonui-lib-test

Version:

"#common ui lib test"

98 lines (97 loc) 3.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const operators_1 = require("rxjs/operators"); const webSocket_1 = require("rxjs/webSocket"); class SocketHandler { constructor() { this.isLogin = false; this.isInit = false; this.socket$ = null; this.socket$ = null; } getWebSocket(socketHost, decodeFunc, openCB, closeCB) { this.socket$ = this.createWebSocket(socketHost, decodeFunc, openCB, closeCB); this.socket$.filter = (filterCB) => { return this.socket$.pipe(operators_1.filter(msg => filterCB(msg))); }; this.socket$.filterSubscribe = (filterCB, next, error = null, complete = null) => { return this.socket$.filter(filterCB).subscribe({ next, error, complete }); }; return this.socket$; } send(data) { if (this.isInit) { if (this.socket$) { // console.log("Socket send : ", data); this.socket$.next(data); } else { console.log("Socket is null, can not send message"); } } else { console.log("Socket is not init, can not send message"); } } createWebSocket(socketHost, decodeFunc, openCB, closeCB) { console.log("Socket init, open host = ", socketHost); this.isInit = false; this.isLogin = false; let onOpenObserver = this.creatOpenObserver(openCB); let onCloseObserver = this.creatCloseObserver(closeCB); let onSerializer = (e) => { return e; }; let onDeserializer = (e) => { return decodeFunc(e.data); }; let socketCoonfig = { url: socketHost, binaryType: "arraybuffer", openObserver: onOpenObserver, closeObserver: onCloseObserver, serializer: onSerializer, deserializer: onDeserializer }; let socket$ = webSocket_1.webSocket(socketCoonfig); return socket$; } creatOpenObserver(openCB) { let onNext = (evt) => { console.log("Socket open onNext : ", evt); this.isInit = true; if (!this.isLogin && openCB) openCB(evt); }; let onError = (err) => { console.log("Socket open onError : ", err); }; let onComplete = () => { console.log("Socket open onComplete"); }; let observer = this.createSocketObserver(onNext, onError, onComplete); return observer; } creatCloseObserver(closeCB) { let onNext = (evt) => { console.log("Socket close onNext : ", evt); this.isInit = false; this.isLogin = false; if (closeCB) closeCB(evt); }; let onError = (err) => { console.log("Socket close onError : ", err); }; let onComplete = () => { console.log("Socket close onComplete"); }; let openObserver = this.createSocketObserver(onNext, onError, onComplete); return openObserver; } createSocketObserver(onNext, onError, onComplete) { let observer = { next: (evt) => { onNext(evt); }, error: (err) => { onError(err); }, complete: () => { onComplete(); }, }; return observer; } } exports.default = SocketHandler;