Compare commits
16 Commits
Author | SHA1 | Date | |
---|---|---|---|
21e92bf0c1 | |||
d732e6e7aa | |||
5fdfcdb407 | |||
49e2e90bda | |||
b8e53e7b42 | |||
1136841b3d | |||
42cbc51d22 | |||
2d16403ad1 | |||
afe847499a | |||
f980bb70b4 | |||
f192a8f041 | |||
64bf3aef6d | |||
a5e3cbd05b | |||
2f0fad999a | |||
5e6477720d | |||
bad8bf0688 |
19
package-lock.json
generated
19
package-lock.json
generated
@ -1,17 +1,18 @@
|
||||
{
|
||||
"name": "@pushrocks/smartproxy",
|
||||
"version": "3.0.8",
|
||||
"version": "3.0.16",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@pushrocks/smartproxy",
|
||||
"version": "3.0.8",
|
||||
"version": "3.0.16",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@pushrocks/lik": "^6.0.0",
|
||||
"@pushrocks/smartdelay": "^2.0.13",
|
||||
"@pushrocks/smartpromise": "^3.1.7",
|
||||
"@pushrocks/smartrequest": "^2.0.0",
|
||||
"@pushrocks/smartrequest": "^2.0.5",
|
||||
"@pushrocks/smartstring": "^4.0.2",
|
||||
"@tsclass/tsclass": "^4.0.17",
|
||||
"@types/ws": "^8.5.3",
|
||||
@ -1554,9 +1555,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@pushrocks/smartrequest": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-2.0.0.tgz",
|
||||
"integrity": "sha512-Xmi+2xYvy67aOMg+XO08RaIZ2QjZZonvz7lEFx5esFzu4LIbwYOzN3GEmZ6/gz9yqdGCBknUxTSLfKCO/hZgTg==",
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-2.0.5.tgz",
|
||||
"integrity": "sha512-oUvFJv1PWmvXgYjMKhmxCvJWu3SsTFpw8f3Wh/czwyAbudpB2IRQZw3fC/KaFF8zzUnvijPMP185wOcjvnQWYA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@pushrocks/smartpromise": "^3.1.7",
|
||||
@ -9973,9 +9974,9 @@
|
||||
}
|
||||
},
|
||||
"@pushrocks/smartrequest": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-2.0.0.tgz",
|
||||
"integrity": "sha512-Xmi+2xYvy67aOMg+XO08RaIZ2QjZZonvz7lEFx5esFzu4LIbwYOzN3GEmZ6/gz9yqdGCBknUxTSLfKCO/hZgTg==",
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://verdaccio.lossless.one/@pushrocks%2fsmartrequest/-/smartrequest-2.0.5.tgz",
|
||||
"integrity": "sha512-oUvFJv1PWmvXgYjMKhmxCvJWu3SsTFpw8f3Wh/czwyAbudpB2IRQZw3fC/KaFF8zzUnvijPMP185wOcjvnQWYA==",
|
||||
"requires": {
|
||||
"@pushrocks/smartpromise": "^3.1.7",
|
||||
"@pushrocks/smarturl": "^3.0.2",
|
||||
|
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@pushrocks/smartproxy",
|
||||
"version": "3.0.8",
|
||||
"version": "3.0.16",
|
||||
"private": false,
|
||||
"description": "a proxy for handling high workloads of proxying",
|
||||
"main": "dist_ts/index.js",
|
||||
@ -22,8 +22,9 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@pushrocks/lik": "^6.0.0",
|
||||
"@pushrocks/smartdelay": "^2.0.13",
|
||||
"@pushrocks/smartpromise": "^3.1.7",
|
||||
"@pushrocks/smartrequest": "^2.0.0",
|
||||
"@pushrocks/smartrequest": "^2.0.5",
|
||||
"@pushrocks/smartstring": "^4.0.2",
|
||||
"@tsclass/tsclass": "^4.0.17",
|
||||
"@types/ws": "^8.5.3",
|
||||
|
@ -3,6 +3,6 @@
|
||||
*/
|
||||
export const commitinfo = {
|
||||
name: '@pushrocks/smartproxy',
|
||||
version: '3.0.8',
|
||||
version: '3.0.16',
|
||||
description: 'a proxy for handling high workloads of proxying'
|
||||
}
|
||||
|
@ -130,7 +130,7 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
||||
res.end(messageArg);
|
||||
};
|
||||
|
||||
console.log('got request');
|
||||
console.log(`got request: ${req.headers.host}${plugins.url.parse(req.url).path}`);
|
||||
const destinationConfig = this.router.routeReq(req);
|
||||
|
||||
if (!destinationConfig) {
|
||||
@ -256,14 +256,30 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
||||
this.httpsServer.headersTimeout = 65000;
|
||||
|
||||
this.httpsServer.on('connection', (connection: plugins.net.Socket) => {
|
||||
connection.setTimeout(120000);
|
||||
connection.setTimeout(10000);
|
||||
let destroyed = false;
|
||||
this.socketMap.add(connection);
|
||||
console.log(`added connection. now ${this.socketMap.getArray().length} sockets connected.`);
|
||||
const destroyConnection = () => {
|
||||
if (!destroyed) {
|
||||
destroyed = true;
|
||||
connection.destroy();
|
||||
console.log(`socket successfully destroyed.`);
|
||||
plugins.smartdelay.delayFor(1000).then(() => {
|
||||
connection.removeAllListeners();
|
||||
});
|
||||
}
|
||||
}
|
||||
const cleanupConnection = () => {
|
||||
if (this.socketMap.checkForObject(connection)) {
|
||||
this.socketMap.remove(connection);
|
||||
connection.end();
|
||||
connection.removeAllListeners();
|
||||
connection.destroy();
|
||||
plugins.smartdelay.delayFor(200).then(() => {
|
||||
destroyConnection();
|
||||
});
|
||||
console.log(`removed connection. ${this.socketMap.getArray().length} sockets remaining.`);
|
||||
connection.end(() => {
|
||||
destroyConnection();
|
||||
});
|
||||
}
|
||||
};
|
||||
connection.on('close', () => {
|
||||
@ -287,6 +303,7 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
|
||||
}
|
||||
|
||||
public async updateProxyConfigs(proxyConfigsArg: plugins.tsclass.network.IReverseProxyConfig[]) {
|
||||
console.log(`got new proxy configs`);
|
||||
this.proxyConfigs = proxyConfigsArg;
|
||||
this.router.setNewProxyConfigs(proxyConfigsArg);
|
||||
for (const hostCandidate of this.proxyConfigs) {
|
||||
|
@ -13,11 +13,12 @@ export { tsclass };
|
||||
|
||||
// pushrocks scope
|
||||
import * as lik from '@pushrocks/lik';
|
||||
import * as smartdelay from '@pushrocks/smartdelay';
|
||||
import * as smartpromise from '@pushrocks/smartpromise';
|
||||
import * as smartrequest from '@pushrocks/smartrequest';
|
||||
import * as smartstring from '@pushrocks/smartstring';
|
||||
|
||||
export { lik, smartrequest, smartpromise, smartstring };
|
||||
export { lik, smartdelay, smartrequest, smartpromise, smartstring };
|
||||
|
||||
// third party scope
|
||||
import * as ws from 'ws';
|
||||
|
Reference in New Issue
Block a user