signalR Groups.Remove不起作用

时间:2013-05-15 18:24:38

标签: signalr signalr-hub signalr.client owin

我有一个self-hosted应用程序,类似于我有一种方法可以持续向群组广播(无论某人是否已“加入”)。类似的东西:

var aTimer = new System.Timers.Timer(2000);
aTimer.Elapsed += (sender, e) =>
{
  // broadcast to listeners whether they are listening or not
  IHubConnectionContext _clients = GlobalHost.ConnectionManager.GetHubContext<ChatHub>().Clients;

  _clients.Group("group1FixedName").showMessage("Some message for group 1 only");       
  _clients.Group("group2FixedName").showMessage("Some message for group 2 only");       
  // etc
};
aTimer.Start(); 

我最近从beta1升级到1.1.0版。我开始观察到“删除”方法不起作用,因为"client" (web browser)仍在接收来自“其他”组的消息,即使我发起了“离开”。请注意,“离开”该组并不意味着关闭Web浏览器。它仍然在同一页面(单页面应用程序)中,离开/加入一个组由选择(例如组合框)触发。

中心代码:

public Task Leave(string groupName)
{
        return Groups.Remove(Context.ConnectionId, groupName)
               .ContinueWith(z => Clients.Caller.showCallerMessage("You are now leaving " + groupName));

}

javascript客户端中的代码“离开群组”:

chat.server.leave("group1FixedName");

javascript客户端中的代码“加入群组”:

chat.server.join("group1FixedName");

Hub加入代码:

public Task Join(string groupName)
{
        return Groups.Add(Context.ConnectionId, groupName)
               .ContinueWith(z => Clients.Caller.showCallerMessage("You are now listening to " + groupName));

}

我的实施在这里有问题吗?

1 个答案:

答案 0 :(得分:0)

这是1.1.0beta中引入的#2040错误。 团队正在努力修复它。