You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Relay问题:Node.js通过Azure混合连接无法接收事件

Azure Relay混合连接接收事件问题排查与解决

一、关于"accept"通知的触发位置

hyco-ws包已经封装了Azure Relay混合连接的协议细节,你不需要手动触发"accept"通知——当你通过createRelayedServer创建监听器并成功建立WebSocket连接后,底层协议会自动完成控制通道的"accept"交互流程。收不到事件的问题,大概率出在代码逻辑或配置环节,而非手动触发accept的操作上。

标准可运行的监听器代码示例(关键逻辑标注):

const WebSocket = require('hyco-ws');

// 替换为你的Azure Relay配置
const ns = "<你的命名空间>";
const path = "<混合连接名称>";
const keyrule = "<SAS密钥名称>";
const key = "<SAS密钥值>";

// 生成监听URI和令牌
const uri = WebSocket.createRelayListenUri(ns, path);
const token = WebSocket.createRelayToken(uri, keyrule, key);

// 创建中继服务器
const server = WebSocket.createRelayedServer(
  {
    server: uri,
    token: () => token
  },
  (ws) => {
    // 进入此回调时,控制通道已完成accept交互,客户端连接成功
    console.log('已建立与Relay的连接');
    
    // 监听消息事件,接收来自Relay的事件
    ws.on('message', (data) => {
      console.log('收到事件内容:', data.toString());
    });

    // 监听错误与关闭事件,排查问题
    ws.on('close', () => console.log('连接已关闭'));
    ws.on('error', (err) => console.error('连接错误:', err));
  }
);

server.on('error', (err) => console.error('服务器启动错误:', err));
console.log('监听器已启动,等待事件...');

二、接收事件的方向确认

你遵循的《Azure Relay Hybrid Connections WebSocket NodeJs》文档方向是正确的:混合连接的监听器(Listener)角色本身就是通过WebSocket接收发送方(Sender)投递到Azure Relay的事件。需要确认几个核心匹配项:

  • 发送方必须向同一个混合连接名称发送事件
  • SAS令牌需包含Listen权限(createRelayToken默认生成的令牌已包含Listen、Send权限,无需额外配置)
  • 命名空间、混合连接名称、SAS密钥/名称必须完全匹配,无拼写或大小写错误

三、快速排查步骤

  • 开启错误日志监听:上述代码中添加的ws.on('error')和server.on('error')能捕获协议层面的异常,帮你定位问题
  • 查看Azure Relay门户监控:检查混合连接的"连接数""消息数"指标,确认是否有消息流入
  • 用测试发送方验证流程:编写简单的发送端代码,确认事件能正常投递到Relay:
// 测试发送方代码
const WebSocket = require('hyco-ws');

const sendUri = WebSocket.createRelaySendUri(ns, path);
const sendToken = WebSocket.createRelayToken(sendUri, keyrule, key);

const ws = WebSocket.createRelayedConnection(sendUri, sendToken, (err) => {
  if (err) return console.error('发送连接失败:', err);
  ws.send('测试事件消息');
  console.log('测试消息已发送');
});

内容的提问来源于stack exchange,提问作者Prashant

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 03:09:58