Signalr - произошла непредвиденная ошибка при вызове getNotifications на сервере - PullRequest
0 голосов
/ 07 сентября 2018

Я использую SignalR (1.0.3) для мгновенной визуализации push-уведомлений. Когда я вызываю строку с жестким кодом ...SendAsync("notifications-init", "Testing Message"), она работает, но когда я заменяю строку методом ...SendAsync("notifications-init", _notificationService.GetNotifications()), она выдает ошибку, даже если этот метод отлично работает в другом API. Так в чем же причина?

NotificationHub.cs

public class NotificationHub : Microsoft.AspNetCore.SignalR.Hub
  {
    private readonly NotificationService _notificationService;
    public NotificationHub(
      NotificationService notificationService
    )
    {
      _notificationService = notificationService;
    }

    public async Task GetNotifications()
    {           
      await Clients.All.SendAsync("notifications-init", _notificationService.GetNotifiations());
    }
  }

NotificationService.cs:

public IList<NotificationResponse> GetNotifiations()
{
  IList<AccountNotification> notifications = _context.AccountNotification.AsNoTracking()
    .Where(n => n.IsRead != true)
    .Include(n => n.Notification)
    .ToList();      
  return _mapper.Map<IList<NotificationResponse>>(notifications);   
}

app.component.ts:

ngOnInit() {
  this.connectToHub();
}

connectToHub() {
  const options: any = {
    transport: 0
  };

this.hubConnection = new HubConnectionBuilder().withUrl('/signalr/notifications', options).build();

  this.hubConnection
    .start()
    .then(() => {
      console.log('Connection started!');
        this.hubConnection.invoke('getNotifications')
          .catch(err => console.log(err));
    })
    .catch(err => console.error('Error while establishing connection', err));

  this.hubConnection.on('notifications-init', (data: any) => {
    console.log(data);
  });
}
...