1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- 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 10s");
- setTimeout(function () {
- _this.connect()
- }, 10000)
- }
- this.socket["ySocket"].onclose = function () {
- console.log("connection failed,reconnect after 10s");
- setTimeout(function () {
- _this.connect()
- }, 10000)
- }
- };
- 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.sendResult('','need request param {action}');
- return
- }
- action=result["action"]
- var theHandler = this.handlers[action];
- if (!theHandler ||theHandler==undefined){
- this.sendResult(action,'action not found');
- return
- }
- 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);
- }
|