File server.js:
var http = require('http');
var querystring = require('querystring');
var server = http.createServer().listen(3000);
server.on('request', function (req, res) {| if (typeof WebSocket !== 'function') { | |
| // for node.js install ws package | |
| WebSocket = require('ws'); | |
| } | |
| const logger = { | |
| debug: (...arg) => { | |
| // console.log((new Date).toISOString(), 'DEBUG', ...arg) | |
| }, | |
| info: (...arg) => { | 
| // 🔥 Node 7.6 has async/await! Here is a quick run down on how async/await works | |
| const axios = require('axios'); // promised based requests - like fetch() | |
| function getCoffee() { | |
| return new Promise(resolve => { | |
| setTimeout(() => resolve('☕'), 2000); // it takes 2 seconds to make coffee | |
| }); | |
| } | 
| const waitFor = (ms) => new Promise(r => setTimeout(r, ms)) | |
| const asyncForEach = (array, callback) => { | |
| for (let index = 0; index < array.length; index++) { | |
| await callback(array[index], index, array) | |
| } | |
| } | |
| const start = async () => { | |
| await asyncForEach([1, 2, 3], async (num) => { | |
| await waitFor(50) | 
| /* | |
| * Author: Zaggen - 2017 | |
| * version: 0.1 | |
| * github: https://github.com/Zaggen | |
| * Free to use and modify | |
| * */ | |
| const httpProxy = require('http-proxy') | |
| const http = require('http') | |
| const proxy = httpProxy.createProxyServer({}) | 
| [alias] | |
| co = checkout | |
| cob = checkout -b | |
| coo = !git fetch && git checkout | |
| br = branch | |
| brd = branch -d | |
| brD = branch -D | |
| merged = branch --merged | |
| dmerged = "git branch --merged | grep -v '\\*' | xargs -n 1 git branch -d" | |
| st = status | 
| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <title>D3 Drawing</title> | |
| <script src="https://cdn.jsdelivr.net/d3js/3.5.9/d3.min.js"></script> | |
| </head> | |
| <body> | |
| <h3>Draw a polygon :D</h3> | |
| <script> | 
| upstream upstream-ubuntu { | |
| server 127.0.0.1:8080; | |
| } | |
| upstream upstream-nodejs { | |
| ip_hash; | |
| server 127.0.0.1:6001; | |
| server 127.0.0.1:6002; | |
| server 127.0.0.1:6003; | |
| server 127.0.0.1:6004; | 
| ========================= | |
| # /etc/nginx/nginx.conf | |
| ========================= | |
| user www-data; | |
| worker_processes 4; | |
| pid /var/run/nginx.pid; | |
| events { | |
| worker_connections 768; | 
| var numTiers = 100, | |
| triangle, | |
| start, | |
| stop; | |
| /** | |
| * | |
| * First version uses recursion | |
| * | |
| */ |