将 SignalR 用于 ASP.NET Core 2.0,客户端 (1.0.0-alpha2-final),C# VS2017。
连接代码是:await hubConnection.StartAsync();
因为这是一个 await
对于 void
我们如何测试客户端是否成功连接?在我的测试中,我在服务器端有一个断点 public override async Task OnConnectedAsync()
但该断点并不总是被击中,因此我知道 有时 客户端无法连接。或者它做了 连接但 OnConnectedAsync()
没有触发?
客户端如何知道它成功建立了连接?
谢谢
编辑:更多信息。它 火 OnConnectedAsync()
使用时 localhost
(在VS中调试);它不火 OnConnectedAsync()
通过 ngrok 连接时。也许这与代理/CORS有关,我不熟悉。
编辑:似乎客户端 确实连接,因为如果我将 URL 更改为不存在的 URL,它会给出 404。所以看来问题在于 OnConnectedAsync()
当客户端通过 ngrok 连接时不会触发,但在直接连接到 localhost 时会触发。
最佳答案
StartAsync
不是 void
方法但返回 Task
.如果客户端没有连接StartAsync
throws(返回错误的任务),否则在客户端成功连接后异步调用将完成而不会出错(返回已完成的任务)。
关于signalr - 如何在 ASP.NET Core 2.0 的 SignalR 中检查 HubConnection.StartAsync 是否成功?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47056690/