UNPKG

osnova-cluster-launcher

Version:

Deprecated! See [cluster-launcher](https://www.npmjs.com/package/cluster-launcher).

30 lines (24 loc) 778 B
// Created by snov on 09.02.2017. // // Sticky master routine // ///////////////////////////////////////////////////////////////// const net = require('net'); const getWorkerIndex = (ip, len) => { let s = ''; for (let i = 0, _len = ip.length; i < _len; i++) { if (!isNaN(ip[i])) { s += ip[i]; } } return Number(s) % len; }; function stickyListen(opts) { const { ip, port, workers } = opts; const server = net.createServer({pauseOnConnect: true}, connection => { const worker = workers[getWorkerIndex(connection.remoteAddress || '', workers.length)]; worker.send('sticky-session:connection', connection); }).listen(port); console.log(`Web server started on ${ip}:${port}`); } module.exports = stickyListen;