【问题标题】:User to User web chat application (PHP) - what choice?用户对用户网络聊天应用程序 (PHP) - 什么选择?
【发布时间】:2009-06-06 08:39:03
【问题描述】:

我希望为正在开发的新网站实现一对一的用户对用户网络聊天应用程序。类似于Omegle 的东西是最终产品的目标。有谁知道能够做到这一点的现成解决方案?

根据我的经验,PHP 是首选语言。 Omegle 是用 Python 编写的,使用了 twisted 库。是否应该归结为从头开始构建应用程序,任何人都可以就通过 PHP 实现用户之间网络的解决方案提供建议吗?

提前感谢您的帮助。正如您可能已经了解的那样,我并没有冒险离开主流网站,所以虽然 PHP 很好,但连接/网络层对我来说相当陌生。

老读者,第一次发帖

【问题讨论】:

    标签: php chat social-networking


    【解决方案1】:

    有许多基于 Jabber 和 JS 或 Flash 客户端的解决方案。一个易于安装的服务器是Openfire,发布(开源)服务器的公司也提供帮助集成到网站的服务。在我工作的上一个网站上,我安装了服务器,但有人为它编写了一个基于闪存的客户端(这是有问题的,我不会再为客户端那样做),但服务器本身在 sub-第二个响应。

    它已经取代了基于 AJAX 的内部聊天系统,但由于有一小部分客户端使用它,因此 ajax 客户端对网站的 72% 的 HTTP 命中负责(没有它,我们完成了 70 万次以上的点击) /天)。以 Jabber 为基础一夜之间删除了这些内容,并帮助加快了网站速度。 Jabber 系统还可以扩展 10 倍,而只需很少的额外工作。

    【讨论】:

    • 感谢关于 Openfire 的建议。在环顾四周之后,我可能会将 Openfire 与基于 AJAX 的客户端一起使用,直到我需要一些更高效的东西,例如 flash 客户端
    【解决方案2】:

    您不能“将不同的 php 用户连接在一起”。所有这些都将从 user1 到服务器,从 user2 到服务器。然后每个用户的浏览器必须定期轮询新内容。当您说“连接/网络层对我来说相当陌生”时,我的印象是您认为您可以在不让浏览器轮询服务器的情况下做到这一点。你不能。我没有使用过 phpfreechat,但如果它能够创建不同的房间,那么您可以通过为每个用户对设置独特的房间来调查它是否可行。

    【讨论】:

    • 我想我措辞不正确。 “将不同的php用户连接在一起”是指如何在服务器端共享数据。我通常认为这是一个数据库,但是对于聊天程序来说效率太低了。通过“连接/网络层对我来说相当陌生”,我指的是同一件事。我看到流程是这样的:客户端 -> php -> 从其他用户检索信息 -> php -> 客户端,通过 AJAX 完成客户端 -> php
    【解决方案3】:

    传统的做法是提供一个包含所有聊天消息的页面。该页面由用户的浏览器定期刷新。但是这种方式有点蹩脚,因为它会导致闪烁,整个页面重新加载和发布问题。

    另一个好方法是使用 Ajax 检查新消息并发布消息。

    谷歌搜索结果很好:http://www.phpfreechat.net/

    【讨论】:

    • 感谢您的链接,尽管我正在寻找的是一对一即时通讯程序风格聊天的促进者,而不是像 Php 免费聊天那样的聊天室。如果没有可用的预构建解决方案,编写前端应该不会太具有挑战性,而是如何将不同的 php 用户连接在一起
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-05
    • 2023-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多