使用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时会触发。
答案 0 :(得分:1)
StartAsync
不是void
方法,但会返回Task
。如果客户端未连接StartAsync
throws(返回故障任务),则在客户端成功连接后,异步调用将完成而不会出现错误(返回已完成的任务)。