.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
相关产品推荐
相关产品推荐

