0

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

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

我每 5 秒向客户发送一次更新。这些群体“生活”了一定的时间。例如现场投注游戏。所以每场比赛/比赛都是一个小组。游戏结束时,我想删除该组并停止向该组中的客户端发送更新(强制该组中的客户端断开连接)。所以发生的情况是,我没有向那个组发送任何新的 dana,我只是忽略了那个组 :),但是该组中的客户端仍然每 120 秒或更短时间发送一次挂起的请求(以防长池传输)得到了休息(基本上是请求超时)。

可能的解决方案:

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

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

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

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

4

1 回答 1

0

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

于 2013-09-09T05:27:24.887 回答