我已经建立了一个SignalR集线器来在服务器和客户端之间进行通信。中心服务器端代码存储在名为Hooking.cs的类中。我想要的是能够调用Hooking.cs中定义的方法,以允许我从应用程序中的任何位置向任何连接的客户端广播消息。看来,Hooking.cs的新实例为每个客户端/服务器调用创建的,所以我希望我将能够使用像从系统中的其他地方调用SignalR集线器客户端
var hooking = new Hooking();
hooking.Test();
与方法测试()在Hooking.cs定义如
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匹配 –