mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-05-10 14:58:27 +00:00
update doc
This commit is contained in:
parent
adb046b476
commit
d90c12f6fe
@ -101,7 +101,7 @@ Others
|
|||||||
#### to save request data
|
#### to save request data
|
||||||
* to save request data to local file, use ``` anyproxy --file /path/to/file ```
|
* to save request data to local file, use ``` anyproxy --file /path/to/file ```
|
||||||
* anyproxy uses [nedb](https://github.com/louischatriot/nedb) to save request data. Since NeDB's persistence uses an append-only format, you may get some redundant record in local file. For those dupplicated ones with the same id, just use the lastest line of record.
|
* anyproxy uses [nedb](https://github.com/louischatriot/nedb) to save request data. Since NeDB's persistence uses an append-only format, you may get some redundant record in local file. For those dupplicated ones with the same id, just use the lastest line of record.
|
||||||
* [TrafficeRecorder](https://github.com/ottomao/TrafficRecorder) is another tool based on anyproxy to help recording all requests. You may have a try.
|
* [TrafficeRecorder](https://github.com/ottomao/TrafficRecorder) is another tool based on anyproxy to help recording all request data, including header and body. You may have a try.
|
||||||
|
|
||||||
#### throttling
|
#### throttling
|
||||||
* for instance, ``` anyproxy --throttle 10 ``` sets the speed limit to 10kb/s (kbyte/sec)
|
* for instance, ``` anyproxy --throttle 10 ``` sets the speed limit to 10kb/s (kbyte/sec)
|
||||||
|
@ -365,8 +365,6 @@ function setRules(newRule){
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//'function' == typeof(userRule.init) && console.log(userRule.init());
|
|
||||||
//'function' == typeof(userRule.summary) && console.log(userRule.summary());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -59,7 +59,18 @@ module.exports = {
|
|||||||
|
|
||||||
//[beta]
|
//[beta]
|
||||||
//fetch entire traffic data
|
//fetch entire traffic data
|
||||||
fetchTrafficData: function(id,info){}
|
fetchTrafficData: function(id,info){},
|
||||||
|
|
||||||
|
customMenu:[
|
||||||
|
{
|
||||||
|
name :"test",
|
||||||
|
handler :function(){}
|
||||||
|
},{
|
||||||
|
name :"second-test",
|
||||||
|
handler :function(){}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
function mergeCORSHeader(reqHeader,originHeader){
|
function mergeCORSHeader(reqHeader,originHeader){
|
||||||
|
18
proxy.js
18
proxy.js
@ -124,9 +124,20 @@ function proxyServer(option){
|
|||||||
console.log('web interface is disabled');
|
console.log('web interface is disabled');
|
||||||
callback(null);
|
callback(null);
|
||||||
}else{
|
}else{
|
||||||
|
|
||||||
|
var customMenuConfig = proxyRules.customMenu,
|
||||||
|
menuList = [],
|
||||||
|
menuListStr;
|
||||||
|
|
||||||
|
if(customMenuConfig && customMenuConfig.length){
|
||||||
|
for(var i = 0 ; i < customMenuConfig.length ; i++){
|
||||||
|
menuList.push(customMenuConfig[i].name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
menuListStr = menuList.join("@@@");
|
||||||
|
|
||||||
//web interface
|
//web interface
|
||||||
var args = [proxyWebPort, socketPort, proxyConfigPort, requestHandler.getRuleSummary(), ip.address()];
|
var args = [proxyWebPort, socketPort, proxyConfigPort, requestHandler.getRuleSummary(), ip.address(),menuListStr];
|
||||||
var child_webServer = fork(path.join(__dirname,"./webServer.js"),args);
|
var child_webServer = fork(path.join(__dirname,"./webServer.js"),args);
|
||||||
child_webServer.on("message",function(data){
|
child_webServer.on("message",function(data){
|
||||||
if(data.type == "reqBody" && data.id){
|
if(data.type == "reqBody" && data.id){
|
||||||
@ -248,8 +259,7 @@ function UIConfigServer(port){
|
|||||||
};
|
};
|
||||||
|
|
||||||
customerRule.dealLocalResponse = function(req,reqBody,callback){
|
customerRule.dealLocalResponse = function(req,reqBody,callback){
|
||||||
callback(200,{"content-type":"text/html"},req.willResponse)
|
callback(200,{"content-type":"text/html"},req.willResponse);
|
||||||
|
|
||||||
return req.willResponse;
|
return req.willResponse;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -24,7 +24,9 @@
|
|||||||
<a href="#" class="J_clearBtn"><span class="topBtn"><i class="uk-icon-eraser"></i>Clear Logs(Ctrl+X)</span></a>
|
<a href="#" class="J_clearBtn"><span class="topBtn"><i class="uk-icon-eraser"></i>Clear Logs(Ctrl+X)</span></a>
|
||||||
<span class="sep">|</span>
|
<span class="sep">|</span>
|
||||||
<a href="/fetchCrtFile" target="_blank"><span class="topBtn"><i class="uk-icon-certificate"></i>Fetch rootCA.crt</span></a>
|
<a href="/fetchCrtFile" target="_blank"><span class="topBtn"><i class="uk-icon-certificate"></i>Fetch rootCA.crt</span></a>
|
||||||
<a href="http://localhost:{{proxyConfigPort}}"><span class="topBtn"><i class="uk-icon-cog"></i>Config Local Response(beta)</span></a>
|
<a href="#"><span class="topBtn"><i class="uk-icon-cog"></i>Others</span></a>
|
||||||
|
|
||||||
|
<!-- <a href="http://localhost:{{proxyConfigPort}}"><span class="topBtn"><i class="uk-icon-cog"></i>Config Local Response(beta)</span></a> -->
|
||||||
<span class="sep">|</span>
|
<span class="sep">|</span>
|
||||||
<a href="https://github.com/alibaba/anyproxy" target="_blank"><span class="topBtn"><i class="uk-icon-external-link-square"></i>Anyproxy(Github)</span></a>
|
<a href="https://github.com/alibaba/anyproxy" target="_blank"><span class="topBtn"><i class="uk-icon-external-link-square"></i>Anyproxy(Github)</span></a>
|
||||||
|
|
||||||
@ -66,6 +68,7 @@
|
|||||||
|
|
||||||
<input type="hidden" id="socketPort" value="{{webSocketPort}}" />
|
<input type="hidden" id="socketPort" value="{{webSocketPort}}" />
|
||||||
<input type="hidden" id="baseUrl" value="{{ipAddress}}" />
|
<input type="hidden" id="baseUrl" value="{{ipAddress}}" />
|
||||||
|
<input type="hidden" id="customMenu" value="{{menu}}" />
|
||||||
|
|
||||||
|
|
||||||
<script type="text/template" id="main_table_row">
|
<script type="text/template" id="main_table_row">
|
||||||
|
15
web/list.js
15
web/list.js
@ -3,11 +3,13 @@ seajs.config({
|
|||||||
alias: {
|
alias: {
|
||||||
'$' : 'jquery/jquery/1.7.2/jquery',
|
'$' : 'jquery/jquery/1.7.2/jquery',
|
||||||
'Backbone' : 'gallery/backbone/1.1.2/backbone.js',
|
'Backbone' : 'gallery/backbone/1.1.2/backbone.js',
|
||||||
'Underscore': 'gallery/underscore/1.6.0/underscore.js'
|
'Underscore': 'gallery/underscore/1.6.0/underscore.js',
|
||||||
|
"Handlebars": 'gallery/handlebars/1.0.2/handlebars.js',
|
||||||
|
"Popup" : 'arale/popup/1.1.6/popup'
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
seajs.use(['$', 'Underscore', 'Backbone',"./detail"], function($, _, Backbone,Detail) {
|
seajs.use(['$', 'Underscore', 'Backbone',"Handlebars","Popup","./detail"], function($, _, Backbone,Handlebars,Popup,Detail) {
|
||||||
Backbone.$ = $;
|
Backbone.$ = $;
|
||||||
|
|
||||||
var isInApp = window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.list;
|
var isInApp = window.webkit && window.webkit.messageHandlers && window.webkit.messageHandlers.list;
|
||||||
@ -164,6 +166,11 @@ seajs.use(['$', 'Underscore', 'Backbone',"./detail"], function($, _, Backbone,De
|
|||||||
});
|
});
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
//render custom menu
|
||||||
|
var customMenu = $("#customMenu").val().split("@@@");
|
||||||
|
console.log(customMenu);
|
||||||
|
|
||||||
|
|
||||||
//data via web socket
|
//data via web socket
|
||||||
if(!WebSocket){
|
if(!WebSocket){
|
||||||
alert("WebSocket is required. Please use a modern browser.");
|
alert("WebSocket is required. Please use a modern browser.");
|
||||||
@ -227,7 +234,7 @@ seajs.use(['$', 'Underscore', 'Backbone',"./detail"], function($, _, Backbone,De
|
|||||||
});
|
});
|
||||||
|
|
||||||
$(document).mouseup(function(e){
|
$(document).mouseup(function(e){
|
||||||
if (dragging) {
|
if(dragging){
|
||||||
var deltaPageX = e.pageX - pageX;
|
var deltaPageX = e.pageX - pageX;
|
||||||
|
|
||||||
$('.J_recordDetailOverlay').css("left",pageX + deltaPageX);
|
$('.J_recordDetailOverlay').css("left",pageX + deltaPageX);
|
||||||
@ -237,13 +244,11 @@ seajs.use(['$', 'Underscore', 'Backbone',"./detail"], function($, _, Backbone,De
|
|||||||
},300,function(){
|
},300,function(){
|
||||||
$('.J_escBtn').trigger('click');
|
$('.J_escBtn').trigger('click');
|
||||||
});
|
});
|
||||||
|
|
||||||
}
|
}
|
||||||
pageX = e.pageX;
|
pageX = e.pageX;
|
||||||
$('#ghostbar').remove();
|
$('#ghostbar').remove();
|
||||||
$(document).unbind('mousemove');
|
$(document).unbind('mousemove');
|
||||||
dragging = false;
|
dragging = false;
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ var express = require("express"),
|
|||||||
qrCode = require('qrcode-npm'),
|
qrCode = require('qrcode-npm'),
|
||||||
WebSocketServer = require('ws').Server;
|
WebSocketServer = require('ws').Server;
|
||||||
|
|
||||||
function proxyWebServer(port,webSocketPort,proxyConfigPort,ruleSummary,ipAddress){
|
function proxyWebServer(port,webSocketPort,proxyConfigPort,ruleSummary,ipAddress,menuListStr){
|
||||||
|
|
||||||
var self = this,
|
var self = this,
|
||||||
myAbsAddress = "http://" + ipAddress + ":" + port +"/",
|
myAbsAddress = "http://" + ipAddress + ":" + port +"/",
|
||||||
@ -85,7 +85,8 @@ function proxyWebServer(port,webSocketPort,proxyConfigPort,ruleSummary,ipAddress
|
|||||||
rule : ruleSummary || "",
|
rule : ruleSummary || "",
|
||||||
webSocketPort : webSocketPort,
|
webSocketPort : webSocketPort,
|
||||||
proxyConfigPort : proxyConfigPort,
|
proxyConfigPort : proxyConfigPort,
|
||||||
ipAddress : ipAddress || "127.0.0.1"
|
ipAddress : ipAddress || "127.0.0.1",
|
||||||
|
menu : menuListStr
|
||||||
}));
|
}));
|
||||||
}else{
|
}else{
|
||||||
next();
|
next();
|
||||||
@ -115,7 +116,7 @@ function proxyWebServer(port,webSocketPort,proxyConfigPort,ruleSummary,ipAddress
|
|||||||
inherits(proxyWebServer, events.EventEmitter);
|
inherits(proxyWebServer, events.EventEmitter);
|
||||||
|
|
||||||
var param = process.argv.slice(2),
|
var param = process.argv.slice(2),
|
||||||
server = new proxyWebServer(param[0],param[1],param[2],param[3],param[4]),
|
server = new proxyWebServer(param[0],param[1],param[2],param[3],param[4],param[5]),
|
||||||
cbMap = {}, // id body cb
|
cbMap = {}, // id body cb
|
||||||
lastestHeartbeat = new Date().getTime();
|
lastestHeartbeat = new Date().getTime();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user