diff --git a/bin/simple.js b/bin/simple.js index 241d611..e6f066a 100644 --- a/bin/simple.js +++ b/bin/simple.js @@ -62,7 +62,7 @@ function Proxy(config, bridgehost) { } else if (bridgeconfig.type === "amqp_to_tcp") { bridges.amqp_to_tcp(bridgeconfig.source, bridgehost, bridgeconfig.target) } else if (bridgeconfig.type === "http_to_amqp") { - bridges.http_to_amqp(bridgeconfig.source, bridgeconfig.target); + bridges.http_to_amqp(bridgeconfig.source, bridgeconfig.target, bridgehost); } else if (bridgeconfig.type === "http2_to_amqp") { bridges.http2_to_amqp(bridgeconfig.source, bridgeconfig.target); } else if (bridgeconfig.type === "tcp_to_amqp") { diff --git a/lib/bridges.js b/lib/bridges.js index 0df28b0..9594022 100644 --- a/lib/bridges.js +++ b/lib/bridges.js @@ -86,13 +86,14 @@ AmqpToHttpBridge.prototype.stop = function () { this.connection.close(); }; -function HttpToAmqpBridge(port, address) { +function HttpToAmqpBridge(port, address, amqphost) { log.info('Created HTTP to AMQP bridge %s => %s', port, address); this.port = port; this.address = address; var container = rhea.create_container({enable_sasl_external:true}); container.id = process.env.HOSTNAME + '_http:' + this.port + '=>amqp:' + address; - this.client = rclient.create(container.connect(), address); + const option = amqphost ? { host: amqphost } : {} + this.client = rclient.create(container.connect(option), address); //listen for http requests this.server = http.createServer(this.request.bind(this)); @@ -257,8 +258,8 @@ module.exports.amqp_to_tcp = function (address, host, port) { return new AmqpToTcpBridge(address, host, port); }; -module.exports.http_to_amqp = function (port, address) { - return new HttpToAmqpBridge(port, address); +module.exports.http_to_amqp = function (port, address, amqphost) { + return new HttpToAmqpBridge(port, address, amqphost); }; module.exports.http2_to_amqp = function (port, address) { diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..887ea0f --- /dev/null +++ b/package-lock.json @@ -0,0 +1,44 @@ +{ + "name": "icproxy", + "version": "0.0.1", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", + "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", + "requires": { + "ms": "^2.1.1" + } + }, + "http2": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/http2/-/http2-3.3.7.tgz", + "integrity": "sha512-puSi8M8WNlFJm9Pk4c/Mbz9Gwparuj3gO9/RRO5zv6piQ0FY+9Qywp0PdWshYgsMJSalixFY7eC6oPu0zRxLAQ==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "rhea": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/rhea/-/rhea-1.0.16.tgz", + "integrity": "sha512-LWVjMpGiol1Ax8TI0RnBNCUVTIdXrpghgHU/y+BQo/mE45NECbkPMGSx5KMv9j7Mnv0CXFpV4vfKlVb7fLUfXg==", + "requires": { + "debug": "0.8.0 - 3.5.0" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "requires": { + "ms": "^2.1.1" + } + } + } + } + } +} diff --git a/package.json b/package.json index 1cd761e..599af5b 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "debug": "*", + "http2": "^3.3.7", "rhea": "*" } }