c# - PartialView 中的 SignalR 客户端未接收到

标签 c# asp.net-mvc signalr signalr-hub

我仍在了解 SignalR 的基础知识。我想在我网站的不同部分使用它,所以我想我可以在主布局中启动连接,并在 subview 中添加客户端方法。

根据 this answer我有:

window.hub = $.connection.hub.start();

在我的 Layout.cshtml 和

window.hub.done(function () {
   $.connection.notificationHub.server.joinScannerGroup(1);
   alert("in sub view");
});

在我的 subview 中,它有效。集线器已连接,方法 JoinScannerGroup() 被调用。但是,如果我尝试添加:

$.connection.notificationHub.client.scanReceived = function (text) {
    alert("scan received");
};

在 subview 的 javascript 中的任何地方,它永远不会被调用。也许我理解错了,但我想在主页上连接,然后允许任何子页面接收客户端调用。

此外,如果我将 $.connection.start() 移动到 subview 中,它也能正常工作。我理解错了吗?

最佳答案

您需要在调用 hub.start() 之前添加所有客户端中心方法,或者您需要在调用 hub.start() 之前至少添加一个集线器方法(因此 SignalR 将订阅集线器)然后像这样添加所有其他集线器方法:

$.connection.notificationHub.on('scanReceived ', function (text) {
    alert("scan received");
});

(另见 documentation)

关于c# - PartialView 中的 SignalR 客户端未接收到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21165075/

相关文章:

c# - Google Analytics .net api OAuth编译错误

c# - Process.Start 因为 "Insufficient system resources exist"而失败是什么意思

c# - Json.Net 中的私有(private)二传手

css - 401 未授权错误访问 CSS 文件 MVC

jquery - SignalR 的 $.hubConnection() 不工作

SignalR - 处理断开连接的用户

asp.net-core - IIS 只能支持 Blazor 服务器客户端的三个实例?

c# - 如何在列表框中设置文本 block 的背景颜色?

asp.net-mvc - ASP.NET MVC 上有免费的图表报告工具吗?

asp.net - 您是否需要在断开连接时手动从 SignalR 组中删除连接?