如何从我订阅的客户端将结果导入我的操作?
我在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",
};
});
答案 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);
});