SignalR - Javascript-Hub-Proxies
Wenn Sie SignalR verwenden, in Ihren HTML, die Sie benötigen, verweisen Sie die folgenden zwei Skripte:
<script src="~/Scripts/jquery.signalR-1.0.0.js"></script>
<script src="/signalR/hubs"></script>
Zweite ist für ein JavaScript-hub-proxy werden automatisch generiert. Alles funktioniert einwandfrei. Aber was passiert, wenn die JavaScript-Hub-Proxy-Generierung ist deaktiviert, irgendwie, vielleicht durch Einstellung DisableJavaScriptProxies Eigenschaft (https://github.com/SignalR/SignalR/commit/7e974f4e92551a26f3e3e0a166e1dbf6c064e850). Wenn der JavaScript-proxy-Generierung deaktiviert ist und Sie versuchen, Referenz /signalr/hubs in den HTML-Code, es gibt die JavaScript-Fehler:
Uncaught Error: SignalR: JavaScript Hub proxy generation has been disabled.
Wenn ich navigieren Sie zu diesem Pfad in den browser, die Antwort ist:
throw new Error('SignalR: JavaScript Hub proxy generation has been disabled.')
Wenn die JavaScript-proxy-Generierung ist deaktiviert, wie wird das $.connection.myHub.client
JavaScript-code, zur Arbeit zu gehen? Was extra muss ich tun damit es funktioniert? Die JavaScript-Fehlermeldung, die ich bekomme, ist
Uncaught TypeError: cannot read property 'client' of undefined.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie erstellen, die proxies selbst. Sehen hier.
Dies ist auch in den Proben Projekt innerhalb der SignalR-Quelle. Finden Sie die MouseTracking Beispiel. JS für die es (aus hier):
Können Sie es deaktiviert haben, in Ihrem Autostart-Klasse, etwa so:
Hatte ich den code oben. Entfernen/auskommentieren dieser Zeile: hubConfiguration.EnableJavaScriptProxies = false; sollte geben Sie die proxy-Generierung.
Für jeder, der auf stolpert auf dieses Problem. Es scheint zu sein, vom design und auch die SignalR-Dienstprogramm erzeugt nur den server-proxy-Methoden.
Wird es nicht schaffen client-Methoden, auch wenn Sie ein stark typisiertes Hub (Client-Schnittstelle).
So, die einzig richtige Antwort sollte sein, dass Sie erzeugen kleine Funktionen, wie dokumentiert bei Microsoft.
Wie im stockticker sample:
Den stockticker selbst ist wie folgt definiert
public class StockTickerHub : Hub
und die Schnittstelle
Also für jeden client-proxy-Methode, wiederholen Sie diese. Dies sollte nicht brechen Einrichtungen, die Projekt-Ziele.