12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- function Hlclient(wsURL) {
- this.wsURL = wsURL;
- this.handlers = {};
- this.socket = {};
- if (!wsURL) {
- throw new Error('wsURL can not be empty!!')
- }
- this.connect()
- }
- Hlclient.prototype.connect = function () {
- console.log('begin of connect to wsURL: ' + this.wsURL);
- var _this = this;
- try {
- this.socket["ySocket"] = new WebSocket(this.wsURL);
- this.socket["ySocket"].onmessage = function (e) {
- console.log("send func", e.data);
- _this.handlerRequest(e.data);
- }
- } catch (e) {
- console.log("connection failed,reconnect after 30s");
- setTimeout(function () {
- _this.connect()
- }, 30000)
- }
- this.socket["ySocket"].onclose = function () {
- console.log("connection failed,reconnect after 30s");
- setTimeout(function () {
- _this.connect()
- }, 30000)
- }
- };
- Hlclient.prototype.send = function (msg) {
- this.socket["ySocket"].send(msg)
- }
- Hlclient.prototype.regAction = function (func_name, func) {
- if (typeof func_name !== 'string') {
- throw new Error("an func_name must be string");
- }
- if (typeof func !== 'function') {
- throw new Error("must be function");
- }
- console.log("register func_name: " + func_name);
- this.handlers[func_name] = func;
- }
- Hlclient.prototype.handlerRequest = function (requestJson) {
- var _this = this;
- var result=JSON.parse(requestJson);
- console.log(result)
- if (!result['action']) {
- this.sendFailed(seq, 'need request param {action}');
- return
- }
- action=result["action"]
- var theHandler = this.handlers[action];
- try {
- if (!result["param"]){
- theHandler(function (response) {
- _this.sendResult(action, response);
- })
- }else{
- theHandler(function (response) {
- _this.sendResult(action, response);
- },result["param"])
- }
-
- } catch (e) {
- console.log("error: " + e);
- _this.sendResult(action+e);
- }
- }
- Hlclient.prototype.sendResult = function (action, e) {
- this.send(action + atob("aGxeX14") + e);
- }
|