1 | /**
|
2 | * Module dependencies.
|
3 | */
|
4 | var express = require('express');
|
5 | var proxy = require('../../index'); // require('http-proxy-middleware');
|
6 |
|
7 | /**
|
8 | * Configure proxy middleware
|
9 | */
|
10 | var wsProxy = proxy('/', {
|
11 | target: 'http://echo.websocket.org',
|
12 | // pathRewrite: {
|
13 | // '^/websocket' : '/socket', // rewrite path.
|
14 | // '^/removepath' : '' // remove path.
|
15 | // },
|
16 | changeOrigin: true, // for vhosted sites, changes host header to match to target's host
|
17 | ws: true, // enable websocket proxy
|
18 | logLevel: 'debug'
|
19 | });
|
20 |
|
21 | var app = express();
|
22 | app.use('/', express.static(__dirname)); // demo page
|
23 | app.use(wsProxy); // add the proxy to express
|
24 |
|
25 | var server = app.listen(3000);
|
26 | server.on('upgrade', wsProxy.upgrade); // optional: upgrade externally
|
27 |
|
28 |
|
29 | console.log('[DEMO] Server: listening on port 3000');
|
30 | console.log('[DEMO] Opening: http://localhost:3000');
|
31 |
|
32 | require('open')('http://localhost:3000');
|
33 |
|
34 | /**
|
35 | * Example:
|
36 | * Open http://localhost:3000 in WebSocket compatible browser.
|
37 | * In browser console:
|
38 | * 1. `var socket = new WebSocket('ws://localhost:3000');` // create new WebSocket
|
39 | * 2. `socket.onmessage = function (msg) {console.log(msg)};` // listen to socket messages
|
40 | * 3. `socket.send('hello world');` // send message
|
41 | * > {data: "hello world"} // server should echo back your message.
|
42 | **/
|