const AnyProxy = require('../proxy'); const exec = require('child_process').exec; const AnyProxyRecorder = require('../lib/recorder'); const WebInterfaceLite = require('../lib/webInterface'); /* ------------------------------- | ProxyServerA | ProxyServerB | ------------------------------- ---------------------------- | Common Recorder | -------(by events)------| WebInterfaceLite | ------------------------------- ---------------------------- */ const commonRecorder = new AnyProxyRecorder(); // web interface依赖recorder new WebInterfaceLite({ // common web interface webPort: 8002 }, commonRecorder); // proxy core只依赖recorder,与webServer无关 const optionsA = { port: 8001, recorder: commonRecorder, // use common recorder }; const optionsB = { port: 8005, recorder: commonRecorder, // use common recorder }; const proxyServerA = new AnyProxy.ProxyCore(optionsA); const proxyServerB = new AnyProxy.ProxyCore(optionsB); proxyServerA.start(); proxyServerB.start(); // after both ready setTimeout(() => { exec('curl http://www.qq.com --proxy http://127.0.0.1:8001'); exec('curl http://www.sina.com.cn --proxy http://127.0.0.1:8005'); }, 1000); // visit http://127.0.0.1 , there should be two records