У меня есть 2 веб-приложения ASP.NET Core Razor. Каждое приложение будет использовать SignalR для связи с клиентами веб-приложений и мобильными клиентами. Из-за моего предполагаемого использования я настроил оба веб-приложения как Hub и Client, где Клиент использует .NET SignalR Client. Каждое из 2 веб-приложений имеет следующее:
static internal HubConnection Connection; // In the Startup class
public Startup(IConfiguration configuration)
{
Configuration = configuration;
Connection = new HubConnectionBuilder()
// Where the URL is for the OTHER web app
.WithUrl("https://localhost:44386/NotificationHub")
.Build();
}
В каждом проекте также есть класс NotificationHub, производный от Hub, в папке Hubs.
В методе запуска ConfigureServices в каждом приложении в качестве последнего утверждения используется:
services.AddSignalR();
В методе настройки запуска в каждом приложении непосредственно перед вызовом UseMvc у меня есть следующее:
app.UseSignalR(routes =>
{
routes.MapHub<NotificationHub>("/NotificationHub");
});
В каждом из классов NotificationHub у меня есть:
public async Task SendMessage(string user, string message)
{
await Clients.All.SendAsync("ReceiveMessage", user, message);
}
Итак, я не уверен, как изначально подключиться с одного клиента к концентратору, и я также не уверен, правильно ли я использую URL.