【问题标题】:server to client push?服务器到客户端推送?
【发布时间】:2010-10-10 21:14:12
【问题描述】:

当我搜索这个时,我不断得到彗星,但彗星似乎对我的需求很复杂,即最多 100 个用户,一次可能有 10 个用户在线。

是否有更好的解决方案满足我的要求,即能够将数据推送给客户端,一次最多可能在 10-20 个客户端之间。

【问题讨论】:

  • 你在这里用什么?您同时列出了 PHP 和 .Net,是否可以混合使用?
  • 通用的东西,即可以与 .net 和 php 一起使用的技术是最好的,但在这种状态下,.net 更为重要,因为我正在为我们的 Intranet 环境进行开发。

标签: php .net javascript jquery ajax


【解决方案1】:

我也认为 Comet/bayeux 可能有点过于复杂,但简单的 long-polling 应该可以完成工作。

您可以使用get_lock 作为某种阻塞等待。

【讨论】:

【解决方案2】:

不,没有。当您考虑到有关 NAT 穿越、防火墙和客户端安全限制的所有问题时,剩下的唯一解决方案是让客户端发起 HTTP 请求并等待将“推回”数据的响应。 IE。 Comet.

【讨论】:

  • 我们有一个 IIS 服务器用于我们的 .net 驱动的 Intranet。 comet 可以在上面实现还是 comet 需要它自己的独立服务器?
  • “彗星”是涵盖多种技术的总称。长轮询可以在任何平台上实现。没有“彗星服务器”之类的东西。
  • 是的,但 IIS 不能很好地扩展。我会尝试改用 Nginx (en.wikipedia.org/wiki/Nginx)。
  • 必须使用异步处理程序:stackoverflow.com/questions/1756576/…
【解决方案3】:

您可以在客户端请求新数据时使用短轮询方法,例如每秒,然后服务器在有数据时将数据发回。客户端需要存储最后更新数据的 id 或时间跨度,然后不断询问服务器是否有更新的数据。

既然你说你没有很多用户,我认为这种方法是最简单和最容易实现的。

【讨论】:

    【解决方案4】:

    如果您没有使用 Internet Explorer,那么至少有一个 WebSockets 服务器的.NET implementation。这将处理 Webkit 浏览器(Chrome 和 Safari)和 Firefox 4,但会让 IE 用户陷入困境,或者至少仅限于拉取技术(AJAX/AJAJ)。

    【讨论】:

      猜你喜欢
      • 2012-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-10
      • 2010-10-03
      • 2013-02-04
      • 1970-01-01
      相关资源
      最近更新 更多