【问题标题】:PHP instant messaging methods [closed]PHP即时通讯方法[关闭]
【发布时间】:2011-09-11 12:01:50
【问题描述】:

我想制作一个 IM,以便用户可以像聊天一样在同一页面上向彼此发送即时消息。用户可以选择谁可以看到他们的消息。它用于任务管理。我应该使用的最佳方法是什么。我正在使用 php。 php套接字对此有用吗?或轮询、彗星、php 输出缓冲区或 javascript 计时器(计时器简单但不快)。

【问题讨论】:

    标签: php sockets chat comet polling


    【解决方案1】:

    您可以从 PHP 中获得一些选择:

    1. 正如@jgauffin 所指出的,您可以使用Comet 使用Comet and PHP option 或使用类似phpwebsocket 的WebSocket 解决方案在现有的PHP 服务器上执行此操作。
    2. 您可以创建另一个专门用于处理实时消息传递的组件,例如在现有主机或完全专用服务器上运行的专用 Comet 或 WebSockets 进程。如果您采用这种方法,您可以考虑使用在 node.js 或完整的第三方 Comet 或 WebSockets 服务器中运行的 socket.io 之类的东西。
    3. 最后,您可以查看一个托管服务,它可以让您保留现有的开发和生产环境,然后您可以在实时聊天中分层。一项名为Pusher(我从事这项工作)的此类服务除了提供专门为使聊天应用程序易于构建而开发的附加功能外,还处理所有实时消息传递基础架构。这也意味着,如果您使用的是共享主机之类的东西,那里的东西被严格锁定并且您无法轻松安装自己的组件,则无需升级您的主机。

    【讨论】:

      【解决方案2】:

      我建议为此使用 Socket.IO。

      【讨论】:

      • 感谢大家的解答。
      【解决方案3】:

      最常用的方法是COMET

      这是一个 PHP 实现:How to implement COMET with PHP

      在 HTML5 规范中有许多浏览器已经实现的称为 websockets 的东西。这是一个支持 websockets 的 PHP 项目:phpwebsocket。如果浏览器不支持 websockets(因此向后兼容),有一些 javascript 库可以使用 flash 组件

      imho webSockets 是要走的路,尽管 PHP 可能不是处理它们的最合适的后端。

      【讨论】:

      • 我想知道什么是更好的语言?
      • 任何在 web 服务器之外运行良好的语言(编写/使用单独的 websocket 服务器比在 web 服务器中运行实现更好)
      【解决方案4】:

      如果您知道如何使用Sockets,请使用它们;否则在计时器中使用 AJAX 就足够了,只要它不需要是实时的(获取消息之间的 5-10 秒延迟应该是可以的)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多