我已经设置了一个 SignalR 集线器来在服务器和客户端之间进行通信。中心服务器端代码存储在一个名为 Hooking.cs 的类中。我想要的是能够调用 Hooking.cs 中定义的方法,以允许我从应用程序中的任何地方向任何已连接的客户机广播消息。似乎每个客户机/服务器调用都会创建一个 Hooking.cs 的新实例,所以我希望能够使用类似于
var hooking = new Hooking();
hooking.Test();
使用 Hooking.cs 中定义的方法 Test () ,例如
public static void Test() {
Clients.test()
}
以及客户端的 javascript
var hooking = $.connection.hooking;
hooking.test = function() { alert("test worked"); };
$.connection.hub.start()
不幸的是,它没有那么简单,因为 Client 不是静态的,所以不能从静态方法访问。
通过查看 SignalR 源代码,我发现了一个看起来很有前途的方法,Hubs.Invoke(string hubName, string method, params object[] args)
,所以我希望我可以使用类似于 Hubs.Invoke("Hooking", "Test")
的东西,但是我不能让它工作。
如果有任何帮助,我将不胜感激