我已经设置了一个 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()
不幸的是,它并不是那么简单,因为客户端不是静态的,因此无法从静态方法访问。
通过 SignalR 源代码,我发现了一个看起来很有希望的方法Hubs.Invoke(string hubName, string method, params object[] args)
,所以我希望我可以使用诸如Hubs.Invoke("Hooking", "Test")
但我不能让它工作的东西。
对此的任何帮助将不胜感激