1
0
mirror of https://github.com/alibaba/anyproxy.git synced 2025-05-10 14:58:27 +00:00

update doc

This commit is contained in:
OttoMao 2015-01-05 17:12:50 +08:00
parent adb046b476
commit d90c12f6fe
7 changed files with 45 additions and 17 deletions

@ -101,7 +101,7 @@ Others
#### to save request data
* 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.
* [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
* 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]
//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){

@ -124,9 +124,20 @@ function proxyServer(option){
console.log('web interface is disabled');
callback(null);
}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
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);
child_webServer.on("message",function(data){
if(data.type == "reqBody" && data.id){
@ -248,8 +259,7 @@ function UIConfigServer(port){
};
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;
};

@ -24,7 +24,9 @@
<a href="#" class="J_clearBtn"><span class="topBtn"><i class="uk-icon-eraser"></i>Clear Logs(Ctrl+X)</span></a>
<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="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>
<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="baseUrl" value="{{ipAddress}}" />
<input type="hidden" id="customMenu" value="{{menu}}" />
<script type="text/template" id="main_table_row">

@ -3,11 +3,13 @@ seajs.config({
alias: {
'$' : 'jquery/jquery/1.7.2/jquery',
'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.$ = $;
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
if(!WebSocket){
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){
if (dragging) {
if(dragging){
var deltaPageX = e.pageX - pageX;
$('.J_recordDetailOverlay').css("left",pageX + deltaPageX);
@ -237,13 +244,11 @@ seajs.use(['$', 'Underscore', 'Backbone',"./detail"], function($, _, Backbone,De
},300,function(){
$('.J_escBtn').trigger('click');
});
}
pageX = e.pageX;
$('#ghostbar').remove();
$(document).unbind('mousemove');
dragging = false;
}
});

@ -10,7 +10,7 @@ var express = require("express"),
qrCode = require('qrcode-npm'),
WebSocketServer = require('ws').Server;
function proxyWebServer(port,webSocketPort,proxyConfigPort,ruleSummary,ipAddress){
function proxyWebServer(port,webSocketPort,proxyConfigPort,ruleSummary,ipAddress,menuListStr){
var self = this,
myAbsAddress = "http://" + ipAddress + ":" + port +"/",
@ -85,7 +85,8 @@ function proxyWebServer(port,webSocketPort,proxyConfigPort,ruleSummary,ipAddress
rule : ruleSummary || "",
webSocketPort : webSocketPort,
proxyConfigPort : proxyConfigPort,
ipAddress : ipAddress || "127.0.0.1"
ipAddress : ipAddress || "127.0.0.1",
menu : menuListStr
}));
}else{
next();
@ -115,7 +116,7 @@ function proxyWebServer(port,webSocketPort,proxyConfigPort,ruleSummary,ipAddress
inherits(proxyWebServer, events.EventEmitter);
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
lastestHeartbeat = new Date().getTime();