【问题标题】:Help creating a streaming (or push) API with PHP and Apache帮助使用 PHP 和 Apache 创建流式(或推送)API
【发布时间】:2011-10-04 06:45:58
【问题描述】:

我想为我正在处理的项目创建一个 API,允许开发人员创建围绕其功能构建的桌面和移动应用程序。我一直想学习的一件事是创建一个无状态的推送通知系统,类似于 Twitter 的 Streaming API。

基本上,我希望能够实时或尽可能接近地通知用户数据的任何更改。我知道这在移动设备上可能很困难,这就是为什么可能会构建移动应用程序来定期检查更新以节省电池。但是,桌面应用程序不会有这个限制。我想避免让应用程序询问服务器是否有新信息,而是让服务器告诉应用程序有新数据。

我的编程语言是 PHP,我的服务器是 Apache。如果我绝对需要,我可以切换到 Lighttpd 或 nginx,但这绝对是最后的手段,因为它需要对我现有的所有代码进行大量更改。

我读过这篇文章:

http://www.zeitoun.net/articles/comet_and_php/start

并对其进行了测试,但不幸的是,我的浏览器一直在尝试加载页面并且从未真正显示时间。我怀疑这是因为,无论出于何种原因,我一直无法让输出缓冲在我的服务器上工作,除非我发送 64kb(或更多)的数据。听说要禁用gzip,我做了,还是不行,所以不知道。

【问题讨论】:

    标签: php apache api push push-notification


    【解决方案1】:

    看看一些现有的技术来帮助你做到这一点:

    Tornado

    Tornado 是可扩展、非阻塞的 Web 服务器和工具的开源版本,为 FriendFeed 提供支持。 FriendFeed 应用程序是使用一个看起来有点像 web.py 或 Google 的 webapp 的 Web 框架编写的,但带有额外的工具和优化以利用底层的非阻塞基础设施。

    Pusher

    Pusher 是一个托管 API,用于通过 WebSocket 将可扩展的实时功能快速、轻松、安全地添加到 Web 和移动应用程序中。

    两者都非常快速且可扩展,而且我都相对容易设置。

    【讨论】:

      【解决方案2】:

      你可以通过多种方式做到这一点,你可以在客户端构建一个轮询器,或者你可以使用 NodeJS 之类的东西。 (http://nodejs.org/) 或网络套接字。

      【讨论】:

        【解决方案3】:
        猜你喜欢
        • 1970-01-01
        • 2015-07-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-23
        相关资源
        最近更新 更多