来自客户的信号器响应

时间:2016-01-25 22:41:02

标签: c# asp.net-mvc-4 signalr signalr.client

如何从我订阅的客户端将结果导入我的操作?

我在mvc应用程序中设置了hub,其中包含信号器,用于验证多个客户端提供商之间的客户端。

我在我的控制器中访问:

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",
          };
     });

1 个答案:

答案 0 :(得分:1)

SignalR中没有返回值(从客户端到服务器)。您可以定义FindUsersCallback函数并在客户端调用它。在服务器端,你可以处理这个&#34;信号&#34;并返回你的View()。

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

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