How to use generic-hub in SignalR

Ich bin mit SignalR in der version 2.1.2. Ich habe bemerkt, gibt es zwei öffentliche hub Klassen für mich zu nutzen, Hub und Hub<T>. Das ehemalige hat eine MSDN-Seite, die zu sein scheint veraltet und die letztere fehlt jeder MSDN-Seite überhaupt. Ich glaube, die MSDN-Dokumentation ist nicht up-to-date mit der neuesten version von SignalR von Nuget (die ich verwende), weil die Quellen dekompiliert mit der Hilfe von ReSharper zeigen beide Klassen Erben von HubBase Basisklasse. Auf der MSDN-Seite ist Vererbungshierarchie Abschnitt zeigt die Hub Klasse als Erben von Object und Umsetzung IHub und IDisposable Schnittstellen, jedoch sind die dekompiliert Quellen offenbaren die oben genannten HubBase Basisklasse, implementieren die IHub - Schnittstelle, die wiederum implementiert IDisposable.

Den Unterschied zwischen der non-generic und generic-Variante der Klassen ist, dass die non-generic ist Clients Eigenschaft gibt IHubCallerConnectionContext<dynamic> während die generische Variante gibt typisierte IHubCallerConnectionContext<T>.

Ich würde gerne meine Kunden eingegeben, so dass, wenn ich rufen Sie die client-Methoden aus dem hub, dann hätte ich das richtige Intellisense-Unterstützung und stark typisierte Argumente. Was ich mit zu kämpfen, obwohl, ist, wie lassen sich die Hub weiß, dass mein client-Modell die Methode tatsächlich aufgerufen werden im browser.

Dies ist mein TestModel Klasse:

public sealed class TestModel
{
   public String Name { get; set; }
   public void Notify() {}
   public void NotifyComplex(TestModel model) {}
}

Mit der non-generic hub, ich würde einfach anrufen .Notify() oder .Notify(new TestModel() { Name = "sth" }) auf die dynamicly gebunden this.Context.Clients.Client(…) oder this.Context.Caller, aber mit der generischen Klasse, wenn ich diese leeren Methoden in ähnlicher Weise, der browser wird nicht benachrichtigt, an alle.

Wie verwenden Sie den generischen hub-Klasse so, wie es eigentlich verwendet werden?

  • dies könnte nützlich sein: stackoverflow.com/a/21763587/526704
  • Ich fürchte, die Frage ist nicht verwandt ist. Ich bin interessiert in der aufrufenden client Methoden vom server, nicht die andere Weise herum, das ist es, was der OP, die Frage ist, tun, und die Methoden, die ich aufrufen möchten, mithilfe von RPC sind nicht generisch, der hub ist, aber, und so sind auch seine Kunden. Ich Schätze den Kommentar, aber.
  • ich war mir nicht sicher, ob es hilfreich ist oder nicht, aber ich dachte, ich würde geben was ich gefunden habe. leider habe ich keine andere nützliche Einsicht 🙁
  • Keine Sorge, die Antwort wird gefunden schließlich. 🙂
Schreibe einen Kommentar