我有一个聊天室,使用SignalR Hub进行消息传递。偶尔我会收到用户“冻结”的报告。现在这可以被解释为没有消息通过,我怀疑它们已从组中删除。
我的问题是,连接是否会自动重新订阅回其组中,或者您是否必须自己在重新连接方法中执行某些操作:
public Task Reconnect(IEnumerable<string> groups)
{
return Clients.rejoined(Context.ConnectionId, DateTime.Now.ToString());
}
答案 0 :(得分:5)
是的,在1.0.0.0-alpha1中,您可以使用新的AutoRejoiningGroupsModule
管道模块,使用EnableAutoRejoiningGroups
扩展方法为您构建的集线器管道启用自动重新加入组。此功能在以前版本的框架中不可用。
所以你最终会在你的启动代码中找到它:
GlobalHost.HubPipeline.EnableAutoRejoiningGroups();
<强>更新强>
请注意,SignalR 1.0的最终版本使组自动重新加入默认行为,因此删除了EnableAutoRejoiningGroups
。您可以查看this answer了解详情。