我们正在使用SignalR开发ASP.Net Core应用程序。
我们有一个ApiController,应该可以公开访问连接到SignalR集线器的SignalR客户端
我们需要实现以下工作流程:
对我们来说,问题在于,对于ASP.Net Core,无法执行请求并接收响应,而我们基本上必须向SignalR客户端发出请求,并在SingalR集线器的一个端点上等待响应。 我们现在要做的是从集线器的端点发出一个事件,并通知控制器的操作已收到响应。
这是一些伪代码:
public class TheController: Controller
{
private readonly IHubContext<TheHub> _hub;
public string TheAction (string request)
{
_hub.Client.Group("xxxxx").SendAsync("request-endpoint", request);
//subscribe for event in TheHub
//wait when event was fired by TheHub
return [response_from_TheHub]
}
}
public class TheHub : Hub
{
public void OnRequestProcessed (string response)
{
//fire event
}
}
我们正在寻找一种合适的方法,可以通过SignalR实现请求-响应模式
另外请注意,我们正在使用Microsoft.AspNetCore.SignalR(.Net Core)nuget。