UNPKG

http-simple-proxy

Version:

Simple http/https proxy daemon. Proxying based on the excellent node-http-master.

38 lines (34 loc) 986 B
var regexpHelper = require('../../src/regexpHelper'); var net = require('net'); var url = require('url'); module.exports = function WebsockifyMiddleware() { return { requestHandler: function(req, res, next, parsedEntry) { if(req.upgrade) { var socket = new net.Socket(); var target = parsedEntry.target; if (req.match) { target = regexpHelper(target, req.match); } if(target.match(/^(\d+)$/)) { target = 'localhost:' + target; } var parsedTarget = url.parse('tcp://' + target); socket.once('error', function(err) { if(req.connection) { req.connection.end(); } }); socket.connect(parseInt(parsedTarget.port), parsedTarget.hostname || 'localhost', function() { websockifyService(req, socket); }); } next(); }, entryParser: function(entry) { return { target: entry }; } }; };