Używam SignalR w wersji 2.1.2. Zauważyłem, że istnieją dwie publiczne klasy piasty dla mnie, Hub
i Hub<T>
. Ta pierwsza ma stronę MSDN, która wydaje się być przestarzała, a druga nie ma żadnej strony MSDN. Wierzę, że dokumentacja MSDN nie jest aktualna z najnowszą wersją SignalR z Nuget (której używam), ponieważ źródła dekompilowane za pomocą programu ReSharper pokazują, że obie klasy dziedziczą po klasie bazowej HubBase
. Dziedziczenie sekcji hierarchii stronie MSDN pokazuje klasę Hub
dziedziczenia z Object
i realizacji IHub
i IDisposable
interfejsy jednak dekompilowana źródła ujawniają wspomnianej klasy HubBase
Base, z wykorzystaniem interfejsu IHub
co z kolei realizuje IDisposable
.Jak korzystać z ogólnego koncentratora w SignalR
Różnica między non-rodzajowego i rodzajowego wariantu zajęć jest to, że non-generic czyjaś własność Clients
zwraca IHubCallerConnectionContext<dynamic>
natomiast generyczne powraca wariant wpisane IHubCallerConnectionContext<T>
.
Chciałbym, aby moi klienci pisali na maszynie, więc gdy zadzwonię do metody klienta z koncentratora, będę miał odpowiednie wsparcie IntelliSense i mocno wpisane argumenty. Z czym walczę, to jednak wiedzieć, że metoda mojego modelu klienta jest rzeczywiście wywoływana w przeglądarce.
To mój TestModel
klasa:
public sealed class TestModel
{
public String Name { get; set; }
public void Notify() {}
public void NotifyComplex(TestModel model) {}
}
Z non-generic hub, to bym po prostu zadzwoń .Notify()
lub .Notify(new TestModel() { Name = "sth" })
na dynamic
ly związany this.Context.Clients.Client(…)
lub this.Context.Caller
, ale z klasą rodzajową, gdy zgłoszę te puste metody w podobny sposób, przeglądarka nie jest w ogóle powiadamiana.
Jak korzystać z ogólnej klasy piasty w taki sposób, w jaki ma być używana?
to może być przydatne: http://stackoverflow.com/a/21763587/526704 – DLeh
Obawiam się, że pytanie nie ma związku. Interesuje mnie wywoływanie metod klienta z serwera, a nie na odwrót, co robi OP tego pytania, a metody, które chcę wywołać za pomocą RPC, nie są ogólne, ale i tak jest ich klienci. Doceniam ten komentarz. –
Nie byłem pewien, czy byłoby to pomocne, czy nie, ale myślałem, że dostarczę to, co znalazłem. Przepraszam, nie mam innego pożytecznego wglądu :( – DLeh