来自客户端的 Signalr 响应

Signalr response from client

如何从我订阅的客户端获取结果到我的操作中?

我在我的 mvc 应用程序中设置了集线器和信号器,目的是在多个客户端提供商之间验证客户端。

我在控制器中访问的是:

IHubContext _hubContext = GlobalHost.ConnectionManager.GetHubContext<AmsHub>();

和我的 mvc 操作

  public ActionResult Index()
    {
        var result = _hubContext.Clients.All.FindUsers("johny brown");
// how do I access the result?
        return View();
    }

我订阅的客户端(我有多个)实现了

 var hubConnection = new HubConnection(hubUrl);
 IHubProxy myHubProxy = hubConnection.CreateHubProxy("AmsHub");


 myHubProxy.On("FindUsers", (name) =>
      {
         var foundRecords = new User()
          {
             FirstName = "Johny",
             LastName = "Brown",
             Email = "johny.brown@dummy.com",
          };
     });

SignalR(从客户端到服务器)中没有 return 值。您可以定义一个 FindUsersCallback 函数并在您的客户端调用它。在服务器端,您处理这个 "Signal" 并返回您的 View()。

myHubProxy.On("FindUsers", (name) =  > {
        var foundRecords = new User() {
            FirstName = "Johny",
            LastName = "Brown",
            Email = "johny.brown@dummy.com",
        };

        hubConnection.asmHub.FindUsersCallback(foundRecords);
    });