停止向signalR中的特定组发送更新

时间:2013-09-06 08:14:20

标签: c# jquery web-services signalr

问题:  我有一个基于存储在查询字符串中的变量动态创建的组,这些组由客户端在连接.start()上发送

  $.connection.hub.qs = "live=" + eventID;
  $.connection.hub.start({ transport: 'longPolling' }).done(function (data) {}

我每5秒向客户发送一次更新。那些团体“活”了一定的时间。例如。现场投注游戏。所以每场比赛/比赛都是一个小组。当游戏结束时,我想删除该组并停止向该组中的客户端发送更新(强制该组中的客户端断开连接)。 所以会发生什么,我不会向该组发送任何新的dana我只是忽略该组:),但该组中的客户端仍然每120秒发送一个待处理的请求(如果长池是传输)或者少一些得到了重新定位(基本上是请求超时)。

可能的解决方案:

  • 在阅读了一些帖子后,我得出结论,这可以通过将这些组(具有相应的connectionIDs)作为Hub类的静态字段或数据存储保存在内存中来完成。在一些匹配结束后,我应该从该组中删除所有connectionIDs

  • 也许我可以再定义一个客户端(当我说客户端我认为JS客户端jus要清除时)函数,当匹配在服务器上结束时调用。就像是。

    var myHubProxy = $.connection.myHub
       myHubProxy.client.stopClient = function() {
       $.connection.hub.stop();
    };
    

欢迎任何帮助或建议。感谢。

1 个答案:

答案 0 :(得分:0)

你的第二种方法是现在最好的方法。我们正在研究在未来版本中添加一项功能,以便您立即断开客户端与服务器端的连接。