SignalR连接/断开毂炸毁(SignalR connect/disconnect hub blo

2019-07-29 12:55发布

也开了这是一个问题在这里 ,但希望有人看到这个..

我有一个非常简单的枢纽实现IConnected / IDisconnect。 在一个独立的项目,该中心测试了很大的。

当我把它放进我的真实的项目,我在那里已经有一些其他的枢纽,增加它造成了不集线器是可用(证实,没有在/ signalr /集线器显示)。 然后我注释掉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(() => { });
    }
}

Answer 1:

下面是一个类似的问题的链接有没有一种办法让Signalr中心组的连接数?

如果没有帮助,你可以看看新的连接状态的东西,在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 connect/disconnect hub blows up
标签: signalr