[英]SignalR doesn't work with .net core WPF application
我正在開發一個 .net 核心應用程序,它將使用 SignalR 在服務器和客戶端之間進行通信。 似乎 .net 核心 WPF 客戶端無法啟動與服務器的連接。 到達 StartAsync 方法后,它掛起,沒有任何信息。 這是一個示例代碼。 我還准備了一個控制台客戶端,它使用相同的方式連接到服務器並且工作正常。 有沒有人遇到過類似的問題?
它是死鎖的。 不要在 UI 同步上下文中使用.Wait()
。
萬一鏈接腐爛,這是您發布的代碼:
namespace Communication
{
public class LiveService
{
private readonly HubConnection _hubConnection;
public LiveService()
{
var hubConnectionBuilder = new HubConnectionBuilder();
_hubConnection = hubConnectionBuilder
.WithUrl("https://localhost:5001/signalrTestHub/")
.Build();
_hubConnection.StartAsync(default).Wait();
}
public async Task Send(CancellationToken cancellationToken = default)
{
await _hubConnection.SendAsync("SendTestMsg", "Test value", cancellationToken);
}
}
}
這是有關如何修復它的示例:
namespace Communication
{
public class LiveService
{
private readonly HubConnection _hubConnection;
private readonly Task _initialized;
public LiveService()
{
var hubConnectionBuilder = new HubConnectionBuilder();
_hubConnection = hubConnectionBuilder
.WithUrl("https://localhost:5001/signalrTestHub/")
.Build();
_initialized = _hubConnection.StartAsync(default);
}
public async Task Send(CancellationToken cancellationToken = default)
{
await _initialized;
await _hubConnection.SendAsync("SendTestMsg", "Test value", cancellationToken);
}
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.