我在本地运行的azure和windows服务中运行了一个web api。这些“客户端”在web api中登录Hub。当api向所有客户发出命令时,一切都很受欢迎。这里没问题。 但是,是否可以从同一个websocket从客户端向服务器发送信号,从windows服务到web api?现在我的服务在web api上调用一个控制器,但这感觉多余,因为已经有一个websocket可用,对吗?
我对signalR有点新意,所以任何帮助都会受到赞赏。
日Thnx!
答案 0 :(得分:3)
您可以使用Invoke
方法实现此目的:
var hubConnection = new HubConnection("http://localhost:1235/");
var hub = hubConnection.CreateHubProxy("myHub");
await hubConnection.Start();
hub.Invoke("MethodName", params...);
创建集线器连接后,您可以使用Invoke
从客户端调用方法调用,第一个参数是methodname(您要调用的服务器上的方法)作为字符串和params
你可以给方法发一些参数
如果被调用的方法具有返回类型,则可以将其指定为泛型<>
:
var result = hub.Invoke<MyReturnType>("MethodName", params...);