也打开了这个作为一个问题,但希望有人看到这个..
我有一个非常简单的集线器,它实现了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(() => { });
}
}
Run Code Online (Sandbox Code Playgroud)
以下是类似问题的链接 有没有办法获得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();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6550 次 |
| 最近记录: |