L'appel de SignalR hub clients d'ailleurs au système

J'ai mis en place un SignalR hub pour communiquer entre le serveur et le client. Le serveur concentrateur de côté le code est stocké dans une classe appelée Accrochage.cs. Ce que je veux, c'est être capable d'appeler une méthode définie dans l'Accrochage.cs pour me permettre de diffuser des messages à tous les clients connectés à partir de n'importe où dans mon application. Il semble qu'une nouvelle instance de l'Accrochage.cs est créé pour chaque client/serveur, alors j'avais espéré que je serais en mesure d'utiliser quelque chose comme

var hooking = new Hooking();
hooking.Test();

avec la méthode Test() définie dans l'Accrochage.cs comme

public static void Test() {
    Clients.test()
}

et avec le côté client javascript

var hooking = $.connection.hooking;
hooking.test = function() { alert("test worked"); };
$.connection.hub.start()

Malheureusement, il n'est pas simple, car les Clients n'est pas statique, donc pas accessible à partir d'une méthode statique.

À la recherche par le biais de la SignalR code source, je suis tombé sur une méthode qui avait l'air prometteur, Hubs.Invoke(string hubName, string method, params object[] args), donc j'espère que je pourrais utiliser quelque chose comme Hubs.Invoke("Hooking", "Test") mais je ne peux pas le faire fonctionner.

L'aide de ce serait très apprécié

  • Mais peut-être que vous pourrez m'aider 😉 une idée de la façon d'effectuer votre code js dans votre message de diffusion pour tous les autres clients, et non pas de l'origine de l'appelant qui a émis le message? 🙂
  • Malheureusement je ne suis pas. J'ai été la manipulation de ce côté client, l'envoi de l'id du client de retour avec la réponse, et tout simplement pas à l'appel de la fonction si l'id du match