如何在SignalR for ASP.NET Core 2.0中检查HubConnection.StartAsync的成功?

时间:2017-11-01 14:03:05

标签: signalr asp.net-core-2.0 signalr.client asp.net-core-signalr

使用SignalR for ASP.NET Core 2.0,客户端(1.0.0-alpha2-final),C#VS2017。

连接代码是: await hubConnection.StartAsync(); 因为这是await的{​​{1}},我们如何测试客户端是否设法连接?在我的测试中,我在void的服务器端有一个断点,但该断点不是始终命中,因此我知道 有时 客户端无法连接。或者它确实连接但public override async Task OnConnectedAsync()没有被触发?

客户端如何知道它是否成功建立了连接?

由于

编辑:更多信息。使用OnConnectedAsync()时, 触发OnConnectedAsync()(在VS中进行调试);通过ngrok连接时,触发localhost。也许这与proxy / CORS有关,我不熟悉。

修改:客户端确实似乎确实已连接,因为如果我将网址更改为不存在的网址,则会提供404.因此问题似乎是OnConnectedAsync()客户端通过ngrok连接时不会触发,但直接连接到localhost时会触发。

1 个答案:

答案 0 :(得分:1)

StartAsync不是void方法,但会返回Task。如果客户端未连接StartAsync throws(返回故障任务),则在客户端成功连接后,异步调用将完成而不会出现错误(返回已完成的任务)。