2.3.30 • Published 3 years ago

magic-reverse-proxy v2.3.30

Weekly downloads
18
License
MIT
Repository
github
Last release
3 years ago

Magic Reverse Proxy

Getting started into Magic Reverse Proxy!

Installation

How it works?

In this basic sample our main goal is to forward all websocket traffic from port 8080 to port 1234.

Creating a basic WebSocket server:

import http from 'http';
import WebSockets from 'websocket';
import { createProxy } from 'magic-reverse-proxy';

const server = http.createServer((req, res) => {
  //Reject useless requests...
  res.writeHead(403).end();
});

server.listen(1234, function () {
  console.log('Destination server is running on port 1234!');
});

const WebSockServer = new WebSockets.server({
  httpServer: server,
  maxReceivedFrameSize: 65536,
  maxReceivedMessageSize: 65536
});

WebSockServer.on('request', (request) => {
  console.log('WebSocket connected over [Client -> localhost:8080 -> localhost:1234]');
  let sock = request.accept();
  sock.on('message', (msg) => {
    //Print in the console the data recepted from client.
    console.log(msg.utf8Data);
  })
});

Creating the Magic Proxy trigger and binding to specific port:

let proxy = createProxy({
  allow_unknown_host: false, //Drop connections from unknown hosts
  allow_websockets: true, //Allow websocket to be proxied as well
  http: {
    port: 8080, //Define HTTP proxy to port 80
    enabled: true, //Enable HTTP proxy
    start_callback: () => {
      console.log('Magic proxy server is running on port 8080!');
    },
    middlewares: [] //Stack of middlewares to be loaded into HTTP server
  },
  proxies: [
    {
      domain: '*', //Proxy all websocket traffic to ws://localhost:1234
      timeout: 10000, //Timeout for connection
      round: 0, //Round-Robin index of destinations to proxy all requests
      destination: ['http://localhost:1234/'], //Array with destinations (Round-Robin will be used to load balance)
      sockDestination: ['ws://localhost:1234'] //Array with websocket destinations (Round-Robin will be used to load balance)
    }
  ],
  default_proxy: {
    timeout: 10000, //Timeout for connection
    round: 0, //Round-Robin index of destinations to proxy all requests
    destination: ['http://localhost:1234/'] //Array with destinations (Round-Robin will be used to load balance)
  }
});

//Bind proxy with specified configurations
proxy.bind();
2.3.28

3 years ago

2.3.27

3 years ago

2.3.29

3 years ago

2.3.30

3 years ago

2.3.26

3 years ago

2.3.25

3 years ago

2.3.24

3 years ago

2.3.23

3 years ago

2.3.22

3 years ago

2.3.20

3 years ago

2.3.21

3 years ago

2.2.20

3 years ago

2.2.19

3 years ago

2.1.18

3 years ago

2.1.19

3 years ago

2.1.16

3 years ago

2.1.17

3 years ago

2.1.15

3 years ago

1.1.15

3 years ago

1.1.14

3 years ago

1.1.13

3 years ago

1.1.12

3 years ago

1.1.11

3 years ago

1.1.10

3 years ago

1.1.9

3 years ago

1.0.8

3 years ago

0.0.8

4 years ago

0.0.7

4 years ago

0.0.6

4 years ago

0.0.5

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago

0.0.1

4 years ago