Я пытаюсь использовать signalR в новом dotnet core2.1.У меня настроен сервер C # и готово приложение ionic 3 в качестве клиента.Я дошел до того, что установил успешную связь между ними.Когда я пытаюсь использовать SendAsync от сервера к клиенту, клиент показывает как ноль, даже если было установлено успешное соединение.
Я провел некоторое тестирование и даже попытался использовать переопределение OnConnectedAsync, чтобы увидеть, что происходит.Это срабатывает, но context.user.identity.name пусто, а клиент все равно возвращается в ноль.
В журнале браузера:
Information: WebSocket connected to ws://localhost:xxxx/myHub
в моем хабе
public async Task Send(string message)
{
await Clients.All.SendAsync("SendMessage", message);
}
в контроллере
public async Task<IActionResult> NewBuild()
{
await myHub.Send("New Build Completed.");
return Ok();
}
при моем запуске
services.AddCors(options => options.AddPolicy("CorsPolicy",
builder =>
{
builder.AllowAnyMethod().AllowAnyHeader().AllowAnyOrigin().AllowCredentials();
}));
services.AddSignalR();
app.UseCors("CorsPolicy");
app.UseSignalR(routes =>
{
routes.MapHub<myHub>("myHub");
});
и в ионном
hubConnection: HubConnection;
this.hubConnection = new HubConnection('http://localhost:xxxx/myHub', {
transport: TransportType.WebSockets
});
this.hubConnection.on("SendMessage", () => {
this.InitTodayBuilds();
});
this.hubConnection.start().catch(() => console.error);
Как я уже сказал, похоже, что соединение просто отлично.Но когда вызывается метод Send, он получает пустое исключение.
Я что-то упустил здесь?Любая помощь приветствуется!