【问题标题】:Need help with comet, and what to choose在彗星方面需要帮助,以及选择什么
【发布时间】:2010-02-26 23:17:47
【问题描述】:

我是 comet 的新手,但我读过它,我意识到 PHP 不适合彗星长轮询。

我所有的项目都是用 CodeIgniter PHP 框架编写的,所以我所有的代码都是 PHP。但是我需要所有秒的请求数据来更新拍卖产品,我正在寻找彗星,但是由于 PHP 是彗星的一种不好的方式,我该怎么做呢?

也可以从 MySQL 中读取并发送到监听器?

谢谢。

【问题讨论】:

  • 我读到了php单线程,php等待执行,不能同时处理很多用户
  • PHP 可以一次处理大量用户,具体取决于您使用的服务器设置类型。我在我的设置中使用了 PHP-fcgi 的变体,它的扩展性非常好。

标签: php codeigniter comet


【解决方案1】:

一个解决方案是Ajax Push Engine - 他们提供自己的服务器来处理与客户端的连接,但您可以使用任何后端向 APE 提供数据 - 包括 PHP。您也可以直接使用 MySQL - 请参阅示例 onetwo注意: APE 服务器 只能在 Linux、BSD 或 Mac OS X 上运行(不过,似乎应该可以连接到 Windows,因为它是用纯 C,AFAICT)。

另一个是NGiNX_HTTP_Push_Module - 你使用 nginx 作为你的推送服务器(不需要运行额外的服务器,就像在 APE 的情况下一样),并且该协议易于使用/直截了当恕我直言。

【讨论】:

  • 谢谢,有没有使用windows的APE?没有虚拟
  • :facepalm: 哎呀,谢谢你指出这一点,完全忘记了 - 不幸的是,APE 只适用于 Linux、BSD 或 Mac OS X - 我已经编辑了我的答案以包含它。
  • 可以用纯C写,但是在linux和windows下有不同的用法,比如threads和sockets的定义还有什么好的解决办法吗?谢谢
  • 不,是的,我知道简单的重新编译不会这样做,只是应该可能(好吧,它总是可能的:D)。无论如何,我可以推荐的另一个选项是 nginx 及其推送模块。可以在 Windows (nginx.org/en/docs/windows.html) 上运行 nginx——出于开发目的,它应该足够了。有关其他可能性(包括商业)的更多列表,请参阅ajaxpatterns.org/HTTP_Streaming
【解决方案2】:

另一种选择是托管 Comet SaaS 解决方案,例如 WebSync On-Demand。它很便宜,而且因为它是托管的,所以没有服务器要求。

有一个PHP SDK 用于集成您的数据推送。

[免责声明:我在那里工作]

【讨论】:

    猜你喜欢
    • 2011-02-04
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 2011-01-27
    • 2014-02-06
    • 2017-11-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多