SignalR连接/断开集线器爆炸 [英] SignalR connect/disconnect hub blows up

查看:14
本文介绍了SignalR连接/断开集线器爆炸的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

也将此作为问题here打开,但希望有人看到这一点。

我有一个实现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(() => { });
    }
}

推荐答案

这里有一个指向类似问题的链接 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();

这篇关于SignalR连接/断开集线器爆炸的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆