首页 > 解决方案 > SignalR - Clients.All 方法发送到错误的页面

问题描述

我对不理解的 SignalR 集线器有疑问。我在 Hub 上一节课。我的应用程序中有两个页面连接到同一个集线器。

当我调用如下方法时:Clients.All.messageReceived(userName, message, time, "") 只有 Page1 中的方法(脚本)正在运行/为什么?

如果我从 Page1 中删除此方法,则不会发生任何事情...

有问题的截图: https ://ibb.co/nLs7jDc

在此处输入图像描述

终于解决了。(所以问题出在方法声明中): 在此处输入图像描述

标签: asp.netvb.netsignalrsignals

解决方案


尝试将您的调用移动到 messageReceived 处理程序方法下方的 start() 。

在建立连接之前,您必须创建连接对象、创建代理并为可从服务器调用的方法注册事件处理程序。设置代理和事件处理程序后,通过调用 start 方法建立连接。

如何建立连接:https ://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-javascript-client

$(function(){
    var logger = $.connection.logHub;
    $.connection.hub.error(function(error){});
    logger.client.messageReceived = function(){};
    $.connection.start();
});

推荐阅读