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

Angular中使用CLI代理URL消费SignalR失败,求配置指引

用Angular CLI代理访问SignalR的配置步骤

1. 配置代理规则文件

在Angular项目根目录创建或修改proxy.conf.json,添加适配SignalR的代理配置:

{
  "/logs/*": {
    "target": "https://localhost:5500",
    "secure": false,
    "changeOrigin": true,
    "ws": true,
    "logLevel": "debug"
  }
}
  • target:填写SignalR服务的实际地址
  • ws: true:开启WebSocket协议支持(SignalR默认优先用WebSocket)
  • secure: false:忽略本地自签证书的安全校验(生产环境可根据实际调整)
  • logLevel: debug:方便查看代理转发日志,调试时启用

2. 修改项目启动命令

打开package.json,更新start命令以加载代理配置:

"scripts": {
  "start": "ng serve --proxy-config proxy.conf.json",
  // 其他命令保持不变
}

3. 调整SignalR连接URL

把原代码中的绝对路径替换为代理后的相对路径:

signalRUrl = "/logs/";
private hubConnection!: signalR.HubConnection;

constructor(private http: HttpClient) { }

public startConnection = () => {
  this.hubConnection = new signalR.HubConnectionBuilder()
    .withUrl(this.signalRUrl)
    .build();

  this.hubConnection.start()
    .then(() => alert('Connection started'))
    .catch(err => alert('Error while starting connection: ' + err))
}

4. 常见问题排查

  • 确认代理路径/logs/*与SignalR Hub的路由完全匹配
  • 启动项目后查看终端的代理日志,检查请求是否正确转发到目标服务
  • 如果仍有连接问题,可尝试在withUrl中添加传输方式配置,强制使用长轮询排查:
    .withUrl(this.signalRUrl, {
      transport: signalR.HttpTransportType.LongPolling
    })
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 02:33:07