diff --git a/CHANGELOG b/CHANGELOG index 15b8690..7778bf9 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +31 July: AnyProxy 3.7.3: + + * show lastest 100 records when visit the web ui + * save map-local config file to local file + * show an indicator when filter or map-local is in use + 31 July: AnyProxy 3.7.2: * bugfix for issue #29 diff --git a/lib/wsServer.js b/lib/wsServer.js index 487a5f3..3a34578 100644 --- a/lib/wsServer.js +++ b/lib/wsServer.js @@ -47,7 +47,8 @@ function resToMsg(msg,cb){ //config.port function wsServer(config){ //web socket interface - var wss = new WebSocketServer({port: config.port}); + var self = this, + wss = new WebSocketServer({port: config.port}); wss.broadcast = function(data) { var key = data.id; if(typeof data == "object"){ @@ -86,9 +87,12 @@ function wsServer(config){ } }); - //Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding - - return wss; + self.wss = wss; +} + +wsServer.prototype.closeAll = function(){ + var self = this; + self.wss.close(); } module.exports = wsServer; \ No newline at end of file diff --git a/proxy.js b/proxy.js index 951c4e0..4e0f651 100644 --- a/proxy.js +++ b/proxy.js @@ -64,7 +64,8 @@ function proxyServer(option){ proxyConfigPort = option.webConfigPort || DEFAULT_CONFIG_PORT, //port to ui config server disableWebInterface = !!option.disableWebInterface, ifSilent = !!option.silent, - webServerInstance; + webServerInstance, + ws; if(ifSilent){ logUtil.setPrintStatus(false); @@ -130,7 +131,7 @@ function proxyServer(option){ //start web socket service function(callback){ - var ws = new wsServer({port : socketPort}); + ws = new wsServer({port : socketPort}); callback(null) }, diff --git a/web/build/index.js b/web/build/index.js index 7c26612..828de9f 100644 --- a/web/build/index.js +++ b/web/build/index.js @@ -35,8 +35,8 @@ function util_merge(left,right){ (function(){ try{ var ws = window.ws = new Anyproxy_wsUtil({ - baseUrl : document.getElementById("baseUrl").value, - port : document.getElementById("socketPort").value, + baseUrl : document.getElementById("baseUrl").value, + port : document.getElementById("socketPort").value, onOpen : function(){ eventCenter.dispatchEvent("wsOpen"); }, diff --git a/web/lib/anyproxy_wsUtil.js b/web/lib/anyproxy_wsUtil.js index 7933444..a594a6e 100644 --- a/web/lib/anyproxy_wsUtil.js +++ b/web/lib/anyproxy_wsUtil.js @@ -26,46 +26,50 @@ function anyproxy_wsUtil(config){ var self = this; var baseUrl = config.baseUrl || "127.0.0.1", - socketPort = config.port || 8003; + socketPort = config.port || 8003, + dataSocket; - var dataSocket = new WebSocket("ws://" + baseUrl + ":" + socketPort); + function initSocket(){ + self.bodyCbMap = {}; + dataSocket = new WebSocket("ws://" + baseUrl + ":" + socketPort); + dataSocket.onmessage = function(event){ + config.onGetData && config.onGetData.call(self,event.data); - self.bodyCbMap = {}; - dataSocket.onmessage = function(event){ - config.onGetData && config.onGetData.call(self,event.data); + try{ + var data = JSON.parse(event.data), + type = data.type, + content = data.content, + reqRef = data.reqRef; + }catch(e){ + config.onError && config.onError.call(self, new Error("failed to parse socket data - " + e.toString()) ); + } - try{ - var data = JSON.parse(event.data), - type = data.type, - content = data.content, - reqRef = data.reqRef; - }catch(e){ - config.onError && config.onError.call(self, new Error("failed to parse socket data - " + e.toString()) ); - } + if(type == "update"){ + config.onGetUpdate && config.onGetUpdate.call(self, content); - if(type == "update"){ - config.onGetUpdate && config.onGetUpdate.call(self, content); + }else if(type == "body"){ + config.onGetBody && config.onGetBody.call(self, content, reqRef); - }else if(type == "body"){ - config.onGetBody && config.onGetBody.call(self, content, reqRef); - - if(data.reqRef && self.bodyCbMap[reqRef]){ - self.bodyCbMap[reqRef].call(self,content); + if(data.reqRef && self.bodyCbMap[reqRef]){ + self.bodyCbMap[reqRef].call(self,content); + } } } + + dataSocket.onopen = function(e){ + config.onOpen && config.onOpen.call(self,e); + } + dataSocket.onclose = function(e){ + config.onClose && config.onClose.call(self,e); + } + dataSocket.onerror = function(e){ + config.onError && config.onError.call(self,e); + } + + self.dataSocket = dataSocket; } - dataSocket.onopen = function(e){ - config.onOpen && config.onOpen.call(self,e); - } - dataSocket.onclose = function(e){ - config.onClose && config.onClose.call(self,e); - } - dataSocket.onerror = function(e){ - config.onError && config.onError.call(self,e); - } - - self.dataSocket = dataSocket; + initSocket(); }; anyproxy_wsUtil.prototype.send = function(data){ diff --git a/web/page.js b/web/page.js index aa29e8b..ae0dd04 100644 --- a/web/page.js +++ b/web/page.js @@ -81,8 +81,8 @@ (function(){ try{ var ws = window.ws = new Anyproxy_wsUtil({ - baseUrl : document.getElementById("baseUrl").value, - port : document.getElementById("socketPort").value, + baseUrl : document.getElementById("baseUrl").value, + port : document.getElementById("socketPort").value, onOpen : function(){ eventCenter.dispatchEvent("wsOpen"); }, @@ -436,46 +436,50 @@ var self = this; var baseUrl = config.baseUrl || "127.0.0.1", - socketPort = config.port || 8003; + socketPort = config.port || 8003, + dataSocket; - var dataSocket = new WebSocket("ws://" + baseUrl + ":" + socketPort); + function initSocket(){ + self.bodyCbMap = {}; + dataSocket = new WebSocket("ws://" + baseUrl + ":" + socketPort); + dataSocket.onmessage = function(event){ + config.onGetData && config.onGetData.call(self,event.data); - self.bodyCbMap = {}; - dataSocket.onmessage = function(event){ - config.onGetData && config.onGetData.call(self,event.data); + try{ + var data = JSON.parse(event.data), + type = data.type, + content = data.content, + reqRef = data.reqRef; + }catch(e){ + config.onError && config.onError.call(self, new Error("failed to parse socket data - " + e.toString()) ); + } - try{ - var data = JSON.parse(event.data), - type = data.type, - content = data.content, - reqRef = data.reqRef; - }catch(e){ - config.onError && config.onError.call(self, new Error("failed to parse socket data - " + e.toString()) ); - } + if(type == "update"){ + config.onGetUpdate && config.onGetUpdate.call(self, content); - if(type == "update"){ - config.onGetUpdate && config.onGetUpdate.call(self, content); + }else if(type == "body"){ + config.onGetBody && config.onGetBody.call(self, content, reqRef); - }else if(type == "body"){ - config.onGetBody && config.onGetBody.call(self, content, reqRef); - - if(data.reqRef && self.bodyCbMap[reqRef]){ - self.bodyCbMap[reqRef].call(self,content); + if(data.reqRef && self.bodyCbMap[reqRef]){ + self.bodyCbMap[reqRef].call(self,content); + } } } + + dataSocket.onopen = function(e){ + config.onOpen && config.onOpen.call(self,e); + } + dataSocket.onclose = function(e){ + config.onClose && config.onClose.call(self,e); + } + dataSocket.onerror = function(e){ + config.onError && config.onError.call(self,e); + } + + self.dataSocket = dataSocket; } - dataSocket.onopen = function(e){ - config.onOpen && config.onOpen.call(self,e); - } - dataSocket.onclose = function(e){ - config.onClose && config.onClose.call(self,e); - } - dataSocket.onerror = function(e){ - config.onError && config.onError.call(self,e); - } - - self.dataSocket = dataSocket; + initSocket(); }; anyproxy_wsUtil.prototype.send = function(data){ diff --git a/web/src/index.js b/web/src/index.js index af6c255..596c169 100644 --- a/web/src/index.js +++ b/web/src/index.js @@ -35,8 +35,8 @@ function util_merge(left,right){ (function(){ try{ var ws = window.ws = new Anyproxy_wsUtil({ - baseUrl : document.getElementById("baseUrl").value, - port : document.getElementById("socketPort").value, + baseUrl : document.getElementById("baseUrl").value, + port : document.getElementById("socketPort").value, onOpen : function(){ eventCenter.dispatchEvent("wsOpen"); },