commonui-lib-test
Version:
"#common ui lib test"
98 lines (97 loc) • 3.54 kB
JavaScript
;
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;