ile yayınlanan SignalR istemci olaylarını alamıyorum Aurelia'ya dayanan tek bir sayfa uygulamasına sahibim ve varolan bir SignalR arka ucunda çalışmaya çalışıyorum. SignalR javascript istemcisini indirdim ve elle Aurelia uygulaması ile entegre ettim (yani bir proxy dosyası kullanmıyorum). SinyalR göbeğine bağlanabiliyorum ve konsoldaki arrvive mesajlarını görebiliyorum .... Şimdiye kadar çok iyi. Şimdi, Aurelia Etkinlik Toplayıcısı'nı kullanmaya çalışıyorum, böylece yeni bir hub mesajı geldiğinde bir etkinlik başlatılır ve bu özel etkinliğe abone olan uygulamanın herhangi bir bileşeni bazı işler yapar. Sorun, SignalR olay geri çağrısının Event Aggregator nesnesine erişemeyeceği yönündedir. İşte sorunu göstermek için kod: geri arama işlevi içinde başvurulanAurelia Olay Toplayıcısı
//Import statements omitted for brevity
@inject (EventAggregator)
export class MyService{
constructor(eventAggregator) {
this.ea = eventAggregator;
this.connection = $.hubConnection("http://localhost:8080/signalr", { useDefaultPath: false });
this.hub = this.connection.createHubProxy("myHub");
//Register a callback function to fire when a new hub message arrives
this.hub.on("sendMessage", this.processHubMessage);
//No issues so far - all this constructor code works fine
}
processHubMessage(message) {
// This doesn't work - this.ea is undefined in the scope of this function
this.ea.publish('deviceStatusUpdate', message);
}
}
olay toplayıcı nesne tanımlı değil - bu sınıfın kapsamında çağrılan değil çünkü varsayalım. Bunu çözmenin bir yolu var mı? Geri çağırma işlevi sınıf özelliklerine nasıl erişirim (örneğimde this.ea).
Teşekkür ... Bu mükemmel çalıştı! – CharlieB