Nightclub Party Music

    magic-reverse-proxy
    TypeScript icon, indicating that this package has built-in type declarations

    2.3.30 • Public • Published

    Magic Reverse Proxy

    Getting started into Magic Reverse Proxy!

    Magic Reverse Proxy is a proxy that can be used to forward requests to another server by domain name, and have a load balancer, ssl/tls support features.

    Installation

    You must run the following terminal command in same path of your project.

    npm install magic-reverse-proxy --save
    

    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();

    Install

    npm i magic-reverse-proxy

    DownloadsWeekly Downloads

    64

    Version

    2.3.30

    License

    MIT

    Unpacked Size

    43.3 kB

    Total Files

    25

    Last publish

    Collaborators

    • muryllo.pimenta