Compare commits

...

10 Commits

Author SHA1 Message Date
ef7e54be34 2.0.3 2021-02-02 00:53:58 +00:00
d800b6ed6e fix(core): update 2021-02-02 00:53:57 +00:00
af42598464 2.0.2 2020-02-23 19:04:53 +00:00
93b1048cb7 fix(core): update 2020-02-23 19:04:53 +00:00
29549b126e 2.0.1 2020-02-23 19:03:26 +00:00
736113eb4e fix(core): update 2020-02-23 19:03:25 +00:00
3b2d140836 2.0.0 2020-02-07 19:36:13 +00:00
70690f6400 BREAKING CHANGE(API): updateReversConfigs -> updateReverseConfigs 2020-02-07 19:36:12 +00:00
ae561e3e88 1.0.38 2020-02-07 16:06:12 +00:00
8a02a0c506 fix(core): update 2020-02-07 16:06:11 +00:00
7 changed files with 391 additions and 617 deletions

962
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/smartproxy",
"version": "1.0.37",
"version": "2.0.3",
"private": false,
"description": "a proxy for handling high workloads of proxying",
"main": "dist/index.js",
@ -16,19 +16,19 @@
"@gitzone/tsbuild": "^2.1.17",
"@gitzone/tstest": "^1.0.28",
"@pushrocks/tapbundle": "^3.2.0",
"@types/node": "^13.7.0",
"@types/node": "^13.7.4",
"tslint": "^6.0.0",
"tslint-config-prettier": "^1.15.0"
},
"dependencies": {
"@pushrocks/lik": "^3.0.16",
"@pushrocks/lik": "^3.0.19",
"@pushrocks/smartnetwork": "^1.1.18",
"@pushrocks/smartpromise": "^3.0.6",
"@pushrocks/smartrequest": "^1.1.47",
"@pushrocks/smartspawn": "^2.0.9",
"@pushrocks/smartstring": "^3.0.18",
"@pushrocks/smartsystem": "^2.0.9",
"@tsclass/tsclass": "^3.0.3",
"@tsclass/tsclass": "^3.0.10",
"@types/ws": "^7.2.1",
"ws": "^7.2.1"
},

View File

@ -18,6 +18,10 @@ a proxy for handling high workloads of proxying
## Usage
## Contribution
We are always happy for code contributions. If you are not the code contributing type that is ok. Still, maintaining Open Source repositories takes considerable time and thought. If you like the quality of what we do and our modules are useful to you we would appreciate a little monthly contribution: You can [contribute one time](https://lossless.link/contribute-onetime) or [contribute monthly](https://lossless.link/contribute). :)
## Contribution

View File

@ -12,7 +12,7 @@ tap.test('should start the testproxy', async () => {
});
tap.test('should supply reverse proxy config', async () => {
testProxy.updateReversConfigs([
testProxy.updateReverseConfigs([
{
destinationIp: 'localhost',
destinationPort: '3000',

View File

@ -231,7 +231,7 @@ JNj2Dr5H0XoLFFnvuvzcRbhlJ9J67JzR+7g=
console.log(`ProxyWorker -> OK: now listening for new connections on port ${this.port}`);
}
public async updateProxyConfigs(proxyConfigsArg: plugins.tsclass.IReverseProxyConfig[]) {
public async updateProxyConfigs(proxyConfigsArg: plugins.tsclass.network.IReverseProxyConfig[]) {
this.proxyConfigs = proxyConfigsArg;
this.router.setNewProxyConfigs(proxyConfigsArg);
for (const hostCandidate of this.proxyConfigs) {

View File

@ -19,7 +19,7 @@ export class SmartProxy {
this.options = optionsArg;
}
public async updateReversConfigs(
public async updateReverseConfigs(
reverseConfigsArg: plugins.tsclass.network.IReverseProxyConfig[]
) {
// TODO search for old hostCandidates with that target

View File

@ -2,25 +2,45 @@ import * as plugins from './smartproxy.plugins';
import { expose } from '@pushrocks/smartspawn';
import * as net from 'net';
let netServer: plugins.net.Server;
let httpServer: plugins.http.Server;
const portProxyCalls = {
start: async (portArg = 8000) => {
httpServer = plugins.http.createServer((request, response) => {
const requestUrl = new URL(request.url, `http://${request.headers.host}`);
const completeUrlWithoutProtocol = `${requestUrl.host}${requestUrl.pathname}${requestUrl.search}`;
const redirectUrl = `https://${completeUrlWithoutProtocol}`;
console.log(`Got http request for http://${completeUrlWithoutProtocol}`);
console.log(`Redirecting to ${redirectUrl}`);
response.writeHead(302, {
Location: redirectUrl
});
response.end();
});
httpServer.listen(7999);
netServer = net
.createServer(from => {
const to = net.createConnection({
host: 'localhost',
port: 8001
});
from.pipe(to);
to.pipe(from);
from.pipe(to)
to.pipe(from)
from.on('error', () => { from.end(), to.end() });
to.on('error', () => { from.end(), to.end() });
from.on('close', () => {
to.end();
})
})
.listen(portArg);
console.log(`PortProxy -> OK: Now listening on port ${portArg}`);
},
stop: async () => {
const done = plugins.smartpromise.defer();
netServer.close(() => {
done.resolve();
httpServer.close(() => {
netServer.close(() => {
done.resolve();
});
});
await done.promise;
}