SignalR 连接/断开集线器爆炸

2024-01-23

也将此作为一个问题打开here https://github.com/SignalR/SignalR/issues/417但希望有人看到这个..

我有一个非常简单的集线器,它实现了 IConnected/IDisconnect。在一个独立项目中,该集线器经过测试效果非常好。

当我将其放入我的实际项目中时,我已经有一些其他集线器,添加它会导致没有可用的集线器(确认 /signalr/hubs 中没有显示任何集线器)。然后,我在此中心注释掉 IConnected/IDisconnect 并重新编译,它与其余部分一起显示。添加接口回来打破了这一切。

有没有人见过这个?是否缺少某些配置或其他什么?

public class ChatHub : Hub, IConnected, IDisconnect
{
    public void Test(string message)
    {

    }

    public System.Threading.Tasks.Task Connect(IEnumerable<string> groups)
    {
        this.Clients.onNewUserOnline(Context.ConnectionId);
        return new Task(() => { });
    }


    public Task Reconnect(IEnumerable<string> groups)
    {
        this.Clients.onNewUserOnline(Context.ConnectionId);
        return new Task(() => { });
    }

    public Task Disconnect()
    {
        this.Clients.onUserOffline(Context.ConnectionId);
        return new Task(() => { });
    }
}

这是类似问题的链接有没有办法获取 Signalr hub 组中的连接数? https://stackoverflow.com/questions/9979524/is-there-a-way-to-get-number-of-connections-in-signalr-hub-group

如果这没有帮助,您可以查看 SignalR 0.5.1 中新的连接状态内容

连接状态变化

SignalR 连接对于用户来说一直是一个黑匣子,这使得检测底层连接状态的变化变得困难。我们在 JavaScript 和 .NET 客户端中公开了一个新的 stateChanged 事件。这允许您监听状态变化并以不同的方式对其做出反应。下面是一个示例,如果连接进入重新连接状态并且 10 秒后未恢复,则会向用户显示一条消息:

var chat = $.connection.chat;
var timeout = null;
var interval = 10000;
chat.addMessage = function (msg) {
    $('#messages').append('<li>' + msg + '</li>');
};
$.connection.hub.stateChanged(function (change) {
    if (change.newState === $.signalR.connectionState.reconnecting) {
        timeout = setTimeout(function () {
            $('#state').css('backgroundColor', 'red')
                .html('The server is unreachable...');
        }, interval);
    } else if (timeout && change.newState === $.signalR.connectionState.connected) {
        $('#state').css('backgroundColor', 'green')
            .html('The server is online');
        clearTimeout(timeout);
        timeout = null;
    }
});
$.connection.hub.start();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SignalR 连接/断开集线器爆炸 的相关文章

  • 在 ASP.NET Core 1.0 中使用 SignalR

    我们有一个 ASP NET Core 1 0 RC1 应用程序 我们希望将 SignalR 合并到其中 但是 SignalR 尚未成为 ASP NET Core 1 0 的一部分 有没有办法仍然将 SignalR 合并到我们现有的应用程序中
  • signalR python 客户端

    是否有适用于 python 的 serviseR ASP NET CORE 2 0 客户端 我发现了信号库 https pypi python org pypi signalr client 0 0 7但它太旧了 不能与我的 signalR
  • SignalR 和 IIS 回收

    我想创建一个使用 SignalR 向客户端发送通知的服务器 使用组 假设我的网站被回收 这些组会发生什么 因为它们不持久 您需要将您的组保存在外部永久存储中 在这里查找更多详细信息 http www asp net signalr over
  • SignalR 方法访问异常

    当我尝试调试一个简单的信号应用程序时出现此错误 尝试访问该方法 Microsoft AspNet SignalR DependencyResolverExtensions InitializePerformanceCounters Micr
  • SignalR 和浏览器连接限制

    我用 SignalR 制作了一个简单的应用程序进行测试 当页面加载时 它会调用服务器上的函数 该函数然后调用在屏幕上打印消息的客户端函数 我这样做是为了检查客户端和服务器功能是否正常工作以及 SignalR 通信是否正常 我的问题是 如果我
  • Azure Function 和自托管 SignalR 服务器

    我知道可以使用 Azure SignalR 服务在函数中使用 SignalR 如下所示 https learn microsoft com en us azure azure signalr signalr quickstart azure
  • 信号器程序集加载问题 OWIN

    我在尝试加载类时收到此错误Microsoft AspNet SignalR Owin集会 执行离开后抛出异常Configuration中的方法startup cs 我已经注册了一个全局异常处理程序来尝试捕获异常 但它没有被捕获 public
  • SignalR 和序列化对象数组

    我是 SignalR 的新手 并且已经完成了一个简单的测试 hack 我希望用类型化对象序列化对象数组 默认情况下 SignalR 已将 Json NET 序列化器配置为不提供类型信息 我发现我可以通过以下方式在 DependencyRes
  • SignalR - 建立连接需要相当长的时间

    我刚刚开始使用 SignalR 进行实时更新 建立连接后我需要执行一些操作 所以我在 done 方法中编写了该代码 我面临的问题是 建立连接需要一些时间 因此我无法执行我想要执行的操作 以下是我的 js 代码片段 function Prox
  • SignalR WebRTC WebSocket 已处于 CLOSING 或 CLOSED 状态

    我想测试运行 SignalR 和 WebRTC 的最简单实现 我将代码托管在https github com foyzulkarim WebRtc https github com foyzulkarim WebRtc 我制作了两个不同的文
  • SignalR:使用 GlobalHost.ConnectionManager 发送数据不起作用

    我有一个这样的中心 public class MessageHubBub Hub public void ServerMethod Clients All sayHi hello GlobalHost ConnectionManager G
  • Signal-R 如何适应 IIS 激活模型?

    我正在学习 Signal R 这是我一直以来的想法 Signalr 如何融入 IIS ASP NET 生命周期 集线器的寿命有多长 我看到它们有重新连接语义 IIS 是否会阻止具有持久连接的 AppDomain 关闭 据我了解 IIS 旨在
  • 如何在 ASP.NET Core 应用程序中将记录器传递到服务器端的 SignalR hub

    我有带有 React 客户端的 ASP NET Core 应用程序 我在服务器和客户端之间有 SignalR 消息传递 我在服务器端有以下代码 Startup cs public void Configure IApplicationBui
  • SignalR cookie 未从客户端发送

    我有一个从客户端发送的 cookie 用作我的 MVC Web 服务的一部分 但是现在我已将集线器集成到此应用程序中 集线器不会发送 cookie 而 mvc 应用程序会发送该 cookie 现在 在阅读其他类似的问题 不是很多 后 coo
  • 如何修复信号器的 ChunkLoadError

    我在本地运行我的 nx 站点时遇到问题 任何使用 signalR 的联合应用程序都开始抛出 ChunkLoadError 我尝试过更改 signalR 的版本 重新加载 清除缓存并单独运行我的联合应用程序 结果总是一样的 Uncaught
  • 如何在docker镜像中运行signalr blazor客户端的StartAsync连接?

    我创建了默认的 blazor 服务器端应用程序 然后添加Microsoft AspNetCore SignalR Client and ChatHub班级 然后编辑startup cs文件 添加services AddSignalR and
  • 当我尝试创建 SignalR hubConnection 时,System.Net.Http.HttpRequestException 被捕获

    请帮助我 当我尝试建立 hubConnection 时 我不断收到 System Net Http HttpRequestException 我已经浏览了很多教程并下载了示例代码 但似乎没有任何效果 我也尝试过在线搜索配置计算机的方法 但很
  • 在 Android 中设置 Signalr:崩溃/挂起问题

    我跟着本教程 https whathecode wordpress com 2014 03 20 getting started with the java signalr sdk 为我的 Android 应用程序设置一个 NET 后端来实
  • 使用 Signalr/PersistentConnection 将服务器消息发送到连接的客户端

    我正在使用 SignalR PersistentConnection 而不是集线器 我想从服务器向客户端发送消息 我有客户端 ID 来发送它 但是如何从服务器向客户端发送消息呢 就像 当服务器上发生某些事件时 我们希望向特定用户发送通知 有
  • 无法识别用“授权”属性修饰的 SignalR 中心中的用户上下文

    Server MVC 5 WebApi 2 内的 SignalR 集线器 安全性 不记名令牌 Client 使用 HttpWebRequest 从 WebApi 控制器 Token 端点检索承载令牌的 C 类 我使用了所描述的模式here

随机推荐