如何让Azure Service Bus Node.js客户端通过HTTPS 443端口而非5671端口连接
Node.js 环境 @azure/service-bus 切换HTTPS 443端口连接方案
Node.js版Azure Service Bus SDK没有和.NET完全一致的全局连接模式开关,直接通过客户端配置强制使用AMQP over WebSocket走443 HTTPS端口,就能实现和.NET设置ConnectivityMode.Https完全相同的效果,绕开5671端口封禁限制。
v7及以上版本@azure/service-bus配置方法
这是目前官方维护的主流版本,配置方式如下:
- 导入依赖
const { ServiceBusClient } = require("@azure/service-bus"); const { AmqpTransportType } = require("@azure/core-amqp");
- 初始化Service Bus客户端时传入传输类型配置
const connectionString = "替换为你的Azure Service Bus连接字符串"; const serviceBusClient = new ServiceBusClient(connectionString, { // 强制使用AMQP over WebSocket,走443 HTTPS端口 transportType: AmqpTransportType.AmqpOverWebsocket, // 若环境需要走代理,可新增webSocketOptions配置,不需要可删除整个字段 webSocketOptions: { proxy: { host: "代理地址", port: 代理端口号, username: "代理用户名(可选)", password: "代理密码(可选)" } } });
配置完成后后续的收发消息、订阅监听逻辑无需修改,直接使用该客户端实例即可。
v2及以下旧版azure-sb包配置方法
如果使用的是早已停止维护的旧版azure-sb包,可使用以下配置:
const azure = require("azure"); const connectionString = "替换为你的Azure Service Bus连接字符串"; const serviceBusService = azure.createServiceBusService(connectionString, { enableAmqpWebSockets: true });
内容的提问来源于stack exchange,提问作者Heinrich Ulbricht
相关产品推荐
相关产品推荐

