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

.NET Core 2.1/Angular:SignalR连接Hub耗时2分钟的问题排查

Ionic应用SignalR连接耗时2分钟的问题求助

我开发了一款Ionic应用,需要通过SignalR连接Socket。这个功能在SignalR预览版时运行完全正常,但现在虽然还能工作,连接却要足足耗时2分钟,我找不到具体原因。

连接延迟相关截图

连接过程中还会出现一些错误:

连接时出现的错误截图

以下是我的相关代码:

客户端JavaScript代码

ngOnInit() { 
  const connection = new signalR.HubConnectionBuilder() 
    .withUrl("http://192.168.178.11:8040/socket?sessionId=3dc1dc11") 
    .build(); 

  connection.on("ReceiveMessage", message => { 
    console.log(message); 
    this.zone.run(() => { 
      if(this.locked == true) { 
        this.locked = false 
      } else { 
        this.locked = true; 
      } 
    }); 
    console.log(this.locked); 
  }); 

  connection.start().catch(err => console.error); 
}

服务端Hub代码

public class DeviceHub : Hub { 
  public override Task OnConnectedAsync() { 
    var sessionId = Context.GetHttpContext().Request.Query["sessionId"]; 
    return Groups.AddToGroupAsync(Context.ConnectionId, sessionId); 
  } 
}

Startup.cs中的配置

app.UseSignalR(routes => { 
  routes.MapHub<DeviceHub>("/socket"); 
});

我现在的问题是:如何解决这个连接延迟的问题?


编辑1:

经过排查发现,延迟发生在OnConnectedAsync()方法调用之前。

编辑2:

补充说明:应用发起的具体请求是:

ws://192.168.178.11:8040/socket?sessionId=3dc1dc11&id=Pt-JDlSPq2_WEIl-8cdPZA

就是这个WebSocket请求耗时整整2分钟。

编辑3:

额外说明:因为手机无法直接连接API,我使用了iisexpress-proxy代理,不确定这个因素是否和延迟有关。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:57:16