私は、サーバーとクライアント間で通信するためのSignalRハブをセットアップしました。ハブサーバーのサイドコードは、Hooking.csというクラスに格納されています。私が望むのは、Hooking.csで定義されたメソッドを呼び出して、アプリケーション内のどこからでも接続されたクライアントにメッセージをブロードキャストできるようにすることです。 Hooking.csの新しいインスタンスがすべてのクライアント/サーバ・コールのために作成されているようですので、私は、私はHooking.csで定義されたメソッドのテスト()とシステム内の他の場所からのSignalRハブクライアントの呼び出し
var hooking = new Hooking();
hooking.Test();
のようなものを使用することができるだろうと期待していましたこのよう
public static void Test() {
Clients.test()
}
とJavaScript
var hooking = $.connection.hooking;
hooking.test = function() { alert("test worked"); };
$.connection.hub.start()
クライアント側は、残念ながらそれはないと同じようにクライアントは静的ではないため、静的メソッドからはアクセスできません。
SignalRソースコードを見て、私は有望な方法を見つけました。Hubs.Invoke(string hubName, string method, params object[] args)
だから、私はHubs.Invoke("Hooking", "Test")
のようなものを使うことができると思っていますが、動作させることはできません。
これですべてのヘルプは非常
多分あなたは私を助けることができます;)メッセージを発行した発信者ではなく、他のすべてのクライアントのブロードキャストメッセージでjsコードを実行する方法:) – GONeale
残念ながら私はしません。私はこのクライアント側を処理していて、クライアントのIDを返信して返します。idが一致すれば関数を呼び出しません。 –