var srv = new Proxy({export: 'https://9f34d25f045b34f1cc7f423e15c2b416.vurl.iwebpp.com:51688/vtoken/1c4e246969340c08'}, function(err, proxy){
    if (err || !proxy) {
        console.log(err+',create proxy failed');
        return 
    }
    var importApp = proxy.importApp;

    // start socks proxy service
    var socks = require('socks5');
    var sockspxySrv = socks.createServer(importApp.socksApp);
    
    sockspxySrv.listen(51888);
    
    sockspxySrv.on('error', function (e) {
        console.error('SERVER ERROR: %j', e);
	    if (e.code == 'EADDRINUSE') {
	        console.log('Address in use, retrying in 10 seconds...');
	        setTimeout(function () {
	            console.log('Reconnecting to %s:%s', HOST, PORT);
	            sockspxySrv.close();
	            sockspxySrv.listen(51888);
	        }, 10000);
	    }
    });
    console.log('Socks forward proxy server listen on port 51888');
});
Exemple #2
0
		.then(function(socksdata){
			// 2.1
			// start socks proxy service
			var sockspxySrv = socks.createServer(importApp.socksApp);

			sockspxySrv.listen(socksdata.port);

			sockspxySrv.on('error', function (e) {
				console.error('SERVER ERROR: %j', e);
			});
			console.log('Socks forward proxy server listen on port '+socksdata.port);

			// 3.
			// start pac server
			deskShell
			.getFreePort(null, null)
			.then(function(pacdata){
				// pac server
				var rawstr = fs.readFileSync(__dirname+'/auto.pac').toString('utf-8');
				// fill http proxy server
				var pacstr = rawstr.replace(/proxy_port/gi, ''+prxydata.port);
				    pacstr = pacstr.replace(/socks_port/gi, ''+socksdata.port);
				///console.log('pacstr: '+pacstr);
				var pacsrv = http.createServer(function(req, res){
					res.writeHead(200, {'Content-Type': 'application/x-ns-proxy-autoconfig'});
					res.end(pacstr);
				});

				pacsrv.listen(pacdata.port);
				console.log('pac server listening on '+pacdata.port);

				// 3.
				// start front app
				var running = deskShell.startApp({
					"user-data-dir": __dirname+"/data",
					"deskShellSocketClient": true
				});

				running.then(function(app){
					console.log('app started ... done');

					// 4.
					// launching chrome browser with pac settings
					var cli = app.params['chromiumPath'];
					cli  = '"' + cli + '"';
					cli += ' --proxy-pac-url="http://localhost:'+pacdata.port+'/auto.pac"';
					cli += ' --user-data-dir="' + __dirname + '/user-data/' + '"';
					cli += ' --disable-translate';

					console.log("cli: "+cli);
					child = exec(cli);
					child.on('exit', function(code){
						console.log('child browser exited '+code);
						// exit main program
						process.exit(code);
					});
				});
			}).fail(function(err){
				console.log('get free pac port failed '+err);
			});
		}).fail(function(err){