Ich habe einen SignalR-Hub für die Kommunikation zwischen Server und Client eingerichtet. Der serverseitige Code des Hubs wird in einer Klasse namens Hooking.cs gespeichert. Ich möchte in der Lage sein, eine in Hooking.cs definierte Methode aufzurufen, mit der ich Nachrichten von überall in meiner Anwendung an alle verbundenen Clients senden kann. Es scheint, dass für jeden Client / Server-Aufruf eine neue Instanz von Hooking.cs erstellt wird. Ich hatte also gehofft, dass ich so etwas verwenden kann
var hooking = new Hooking();
hooking.Test();
mit der in Hooking.cs definierten Methode Test () wie z
public static void Test() {
Clients.test()
}
und mit einem clientseitigen Javascript
var hooking = $.connection.hooking;
hooking.test = function() { alert("test worked"); };
$.connection.hub.start()
Leider ist es nicht so einfach, da Clients nicht statisch sind und daher nicht über eine statische Methode zugänglich sind.
Beim Durchsuchen des SignalR-Quellcodes stieß ich auf eine Methode, die vielversprechend aussah. Hubs.Invoke(string hubName, string method, params object[] args)
Ich würde also hoffen, dass ich etwas wie verwenden könnte, Hubs.Invoke("Hooking", "Test")
aber ich kann es nicht zum Laufen bringen.
Jede Hilfe dabei wäre sehr dankbar