无法在WPF中启动SignalR服务器



我想在启动WPF应用程序时启动SignalR服务器。以便客户端能够进行通信。我在WPF中有以下代码。

protected override async void OnStartup(StartupEventArgs e)
{
AppHost = Host.CreateDefaultBuilder()
.ConfigureServices(ConfigureRequiredServices(e))
.ConfigureWebHostDefaults(webBuilder => webBuilder
.UseUrls("http://localhost:5059")
.ConfigureServices(services => services.AddSignalR())
.Configure(app => {
app.UseRouting();
app.UseEndpoints(endpoint => { endpoint.MapHub<MyHub>("/myhub"); });
}))
.Build();
await AppHost!.StartAsync();
base.OnStartup(e);
}

现在,当我试图从控制台应用程序访问signalR服务器时,我无法做到这一点。知道我缺了什么吗?

客户代码:

HubConnection connection = new HubConnectionBuilder()
.WithUrl("http://localhost:5059/myhub")
.Build();
connection.StartAsync();
connection.SendAsync("SendMessege", "A Message from Client");
connection.On<String>("ReceiveMessege", x => Console.Write(x));
Console.ReadLine();

发现问题。基本上,ConfigureWebHostDefaults应位于ConfigureServices之前。所以下面的代码可以工作,并且能够获得服务器调用。客户端没有变化。

AppHost = Host.CreateDefaultBuilder()
.ConfigureWebHostDefaults(webBuilder => webBuilder
.UseUrls("http://localhost:5059")
.ConfigureServices(services => services.AddSignalR())
.Configure(app => {
app.UseRouting();
app.UseEndpoints(endpoint => { endpoint.MapHub<MyHub>("/myhub");});
}))
.ConfigureServices(ConfigureRequiredServices(e))
.Build();

最新更新