Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
963ad6efa4 | |||
d271029302 | |||
018fcbf71e | |||
fa04732241 | |||
da19fab8d8 | |||
8d318dca28 | |||
d03bfcc793 | |||
4ba2686977 | |||
d24c4d4b7a | |||
e1d4d6cf38 | |||
11344ac0df | |||
85fcfc3c36 | |||
e9ac7b2347 | |||
2c59540768 |
8
package-lock.json
generated
8
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartproxy",
|
"name": "@pushrocks/smartproxy",
|
||||||
"version": "2.0.7",
|
"version": "2.0.14",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -11438,9 +11438,9 @@
|
|||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||||
},
|
},
|
||||||
"ws": {
|
"ws": {
|
||||||
"version": "7.4.2",
|
"version": "7.4.3",
|
||||||
"resolved": "https://verdaccio.lossless.one/ws/-/ws-7.4.2.tgz",
|
"resolved": "https://verdaccio.lossless.one/ws/-/ws-7.4.3.tgz",
|
||||||
"integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA=="
|
"integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA=="
|
||||||
},
|
},
|
||||||
"xml-js": {
|
"xml-js": {
|
||||||
"version": "1.6.11",
|
"version": "1.6.11",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "@pushrocks/smartproxy",
|
"name": "@pushrocks/smartproxy",
|
||||||
"version": "2.0.7",
|
"version": "2.0.14",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "a proxy for handling high workloads of proxying",
|
"description": "a proxy for handling high workloads of proxying",
|
||||||
"main": "dist_ts/index.js",
|
"main": "dist_ts/index.js",
|
||||||
@ -30,7 +30,7 @@
|
|||||||
"@pushrocks/smartsystem": "^2.0.9",
|
"@pushrocks/smartsystem": "^2.0.9",
|
||||||
"@tsclass/tsclass": "^3.0.29",
|
"@tsclass/tsclass": "^3.0.29",
|
||||||
"@types/ws": "^7.4.0",
|
"@types/ws": "^7.4.0",
|
||||||
"ws": "^7.4.2"
|
"ws": "^7.4.3"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"ts/**/*",
|
"ts/**/*",
|
||||||
|
@ -8,6 +8,7 @@ export class ProxyWorker {
|
|||||||
public port = 8001;
|
public port = 8001;
|
||||||
public router = new SmartproxyRouter();
|
public router = new SmartproxyRouter();
|
||||||
public socketMap = new plugins.lik.ObjectMap<plugins.net.Socket>();
|
public socketMap = new plugins.lik.ObjectMap<plugins.net.Socket>();
|
||||||
|
public defaultHeaders: {[key: string]: string} = {};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* starts the proxyInstance
|
* starts the proxyInstance
|
||||||
@ -161,6 +162,7 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
|||||||
{
|
{
|
||||||
method: req.method,
|
method: req.method,
|
||||||
headers: req.headers,
|
headers: req.headers,
|
||||||
|
keepAlive: true
|
||||||
},
|
},
|
||||||
true, // lets make this streaming
|
true, // lets make this streaming
|
||||||
(request) => {
|
(request) => {
|
||||||
@ -174,6 +176,9 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
|||||||
);
|
);
|
||||||
res.statusCode = response.statusCode;
|
res.statusCode = response.statusCode;
|
||||||
console.log(response.statusCode);
|
console.log(response.statusCode);
|
||||||
|
for (const defaultHeader of Object.keys(this.defaultHeaders)) {
|
||||||
|
res.setHeader(defaultHeader, this.defaultHeaders[defaultHeader]);
|
||||||
|
}
|
||||||
for (const header of Object.keys(response.headers)) {
|
for (const header of Object.keys(response.headers)) {
|
||||||
res.setHeader(header, response.headers[header]);
|
res.setHeader(header, response.headers[header]);
|
||||||
}
|
}
|
||||||
@ -220,10 +225,25 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
|||||||
this.httpsServer.keepAliveTimeout = 61000;
|
this.httpsServer.keepAliveTimeout = 61000;
|
||||||
this.httpsServer.headersTimeout = 65000;
|
this.httpsServer.headersTimeout = 65000;
|
||||||
|
|
||||||
this.httpsServer.on('connection', (connection) => {
|
this.httpsServer.on('connection', (connection: plugins.net.Socket) => {
|
||||||
|
connection.setTimeout(120000);
|
||||||
this.socketMap.add(connection);
|
this.socketMap.add(connection);
|
||||||
connection.on('close', () => {
|
const cleanupConnection = (connectionArg: plugins.net.Socket) => {
|
||||||
|
connectionArg.removeAllListeners();
|
||||||
this.socketMap.remove(connection);
|
this.socketMap.remove(connection);
|
||||||
|
connection.destroy();
|
||||||
|
}
|
||||||
|
connection.on('close', () => {
|
||||||
|
cleanupConnection(connection);
|
||||||
|
});
|
||||||
|
connection.on('error', () => {
|
||||||
|
cleanupConnection(connection);
|
||||||
|
});
|
||||||
|
connection.on('end', () => {
|
||||||
|
cleanupConnection(connection);
|
||||||
|
});
|
||||||
|
connection.on('timeout', () => {
|
||||||
|
cleanupConnection(connection);
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -270,6 +290,12 @@ const proxyWorkerCalls = {
|
|||||||
updateReverseConfigs: async (configArray: plugins.tsclass.network.IReverseProxyConfig[]) => {
|
updateReverseConfigs: async (configArray: plugins.tsclass.network.IReverseProxyConfig[]) => {
|
||||||
await proxyWorkerInstance.updateProxyConfigs(configArray);
|
await proxyWorkerInstance.updateProxyConfigs(configArray);
|
||||||
},
|
},
|
||||||
|
addDefaultHeaders: async (headersArg: {[key: string]: string}) => {
|
||||||
|
proxyWorkerInstance.defaultHeaders = {
|
||||||
|
...proxyWorkerInstance.defaultHeaders,
|
||||||
|
...headersArg
|
||||||
|
};
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
export type TProxyWorkerCalls = typeof proxyWorkerCalls;
|
export type TProxyWorkerCalls = typeof proxyWorkerCalls;
|
||||||
|
@ -45,6 +45,10 @@ export class SmartProxy {
|
|||||||
console.log('successfully spawned portproxy and proxyworkers!');
|
console.log('successfully spawned portproxy and proxyworkers!');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async updateDefaultHeaders(defaultHeadersArg: {[key: string]: string}) {
|
||||||
|
await this.proxyWorkerFunctions.addDefaultHeaders(defaultHeadersArg);
|
||||||
|
}
|
||||||
|
|
||||||
public async stop() {
|
public async stop() {
|
||||||
await this.proxyWorkerFunctions.stop();
|
await this.proxyWorkerFunctions.stop();
|
||||||
await plugins.smartspawn.Thread.terminate(this.proxyWorkerFunctions);
|
await plugins.smartspawn.Thread.terminate(this.proxyWorkerFunctions);
|
||||||
|
@ -34,6 +34,7 @@ const portProxyCalls = {
|
|||||||
host: 'localhost',
|
host: 'localhost',
|
||||||
port: 8001,
|
port: 8001,
|
||||||
});
|
});
|
||||||
|
from.setTimeout(120000);
|
||||||
from.pipe(to);
|
from.pipe(to);
|
||||||
to.pipe(from);
|
to.pipe(from);
|
||||||
from.on('error', () => {
|
from.on('error', () => {
|
||||||
|
Reference in New Issue
Block a user