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 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){
|
||||
|
18
proxy.js
18
proxy.js
@ -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">
|
||||
|
15
web/list.js
15
web/list.js
@ -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();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user