1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

websocket - add proxy support.

This commit is contained in:
Simon Hailes 2019-11-03 09:55:11 +00:00
parent 0b3e9bf5e2
commit d32d04bd4e

View File

@ -19,6 +19,8 @@ module.exports = function(RED) {
var ws = require("ws"); var ws = require("ws");
var inspect = require("util").inspect; var inspect = require("util").inspect;
var url = require("url"); var url = require("url");
var HttpsProxyAgent = require('https-proxy-agent');
var serverUpgradeAdded = false; var serverUpgradeAdded = false;
function handleServerUpgrade(request, socket, head) { function handleServerUpgrade(request, socket, head) {
@ -55,7 +57,28 @@ module.exports = function(RED) {
function startconn() { // Connect to remote endpoint function startconn() { // Connect to remote endpoint
node.tout = null; node.tout = null;
var prox, noprox;
if (process.env.http_proxy) { prox = process.env.http_proxy; }
if (process.env.HTTP_PROXY) { prox = process.env.HTTP_PROXY; }
if (process.env.no_proxy) { noprox = process.env.no_proxy.split(","); }
if (process.env.NO_PROXY) { noprox = process.env.NO_PROXY.split(","); }
var noproxy = false;
if (noprox) {
for (var i in noprox) {
if (node.path.indexOf(noprox[i].trim()) !== -1) { noproxy=true; }
}
}
var agent = undefined;
if (prox && !noproxy) {
agent = new HttpsProxyAgent(prox);
}
var options = {}; var options = {};
if (agent) {
options.agent = agent;
}
if (node.tls) { if (node.tls) {
var tlsNode = RED.nodes.getNode(node.tls); var tlsNode = RED.nodes.getNode(node.tls);
if (tlsNode) { if (tlsNode) {