【问题标题】:is ajax-PHP-MySQL a good combination for a chat room app?ajax-PHP-MySQL 是聊天室应用的好组合吗?
【发布时间】:2011-11-24 14:16:23
【问题描述】:

我计划为我在大学的朋友创建一个小型聊天室。 因为我不想投资任何钱,所以我会使用一个不允许我安装 IRC 服务器的免费主机。另外我喜欢使用我已经知道的 ajax 和 PHP。

自刷新 ajax 和 PHP 页面是个好主意吗?就像每一秒一样,ajax 触发一个 PHP 脚本,它返回最新的,比如说聊天历史中的 20 个 MySQL 条目。

当用户写东西时,它会被插入到 MySQL 数据库中,你可能已经猜到了。

这是个好主意吗?

您还有其他保存消息的想法吗?比 MySQL 更优化的东西?

或者有什么完全不同的想法可以实现我的目的?

提前致谢!
安迪:)

编辑:哪个更好:MySQL DB 或文本文件? (jquery首选文本文件,为什么?)

【问题讨论】:

    标签: php mysql ajax chat livechat


    【解决方案1】:

    也许免费主机应该有坏的数据库。所以,如果你不断地访问它,你的聊天会很慢(除非聊天不会被大量使用)。

    无论如何,有一些免费的选项可以用于您的目的(而不是自己开发):

    http://www.phpfreechat.net/

    http://www.phpopenchat.org/

    http://hot-things.net/blab-lite-ajax-chat

    以下是一些带有示例的教程:

    http://css-tricks.com/4371-jquery-php-chat/

    http://www.tutorialized.com/tutorials/PHP/Chat-Systems/1

    http://php.resourceindex.com/Complete_Scripts/Chat/Shoutbox/

    问候!

    【讨论】:

    • 嘿,谢谢!但是,我还是想自己开发!...现在就是这个想法,我也可以将它用作我可以编码的演示,我以后需要它。
    • 我想我只是爱上了jquery! XD
    • 酷,那就继续吧!这些教程可以帮助您进行开发:)
    【解决方案2】:

    你为什么要再次发明电?正如你所说:

    或者有什么完全不同的想法可以实现我的目的?

    有很多聊天室,你为什么不用呢?

    无论如何,从编程的角度来看,如果您打算制作小型聊天室,您的想法似乎不错。但随着用户的增加,您将面临服务器过载,并可能导致空闲主机崩溃。

    【讨论】:

    • 是的,我知道那里有很多免费的,但我的想法是自己编写代码,从上到下。以后在大学里我会需要它,因为我需要证明我可以编码,创建一个个人项目,而且聊天室在无聊的课程中确实缺乏...... :) 无论如何,谢谢! :D 干杯!
    【解决方案3】:

    这是基本聊天室的一种非常典型的方法,对我来说似乎很好。我唯一建议的是为每个聊天记录分配一个自动增量 ID,以便您的 ajax 可以跟踪它收到的最新消息。这样,如果最后收到的消息的 ID 为 100,ajax 可以请求 ID 为 101 或更高的项目。然后你只是拉新消息,它们可以被附加到聊天窗口,而不是刷新整个页面。

    【讨论】:

    • 是的,谢谢你的想法!这是一个很好的优化方法!欣赏它! :D
    【解决方案4】:

    如果你使用内存表,你可以节省很多硬盘速度,你需要选择正确的索引。

    示例数据库结构:

    CREATE TABLE `chat` (
     `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
     `date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
     `channel` varchar(16) NOT NULL,
     `user` varchar(32) NOT NULL,
     `text` varchar(255) NOT NULL,
     `private` varchar(32) DEFAULT NULL,
         PRIMARY KEY (`id`),
     KEY `private` (`private`),
     KEY `channel` (`channel`)
    ) ENGINE=MEMORY
    

    我有大约 70-80 个用户在线,但服务器上没有任何负载(2GHz CPU 的服务器)

    【讨论】:

    • 非常感谢!我会尽量优化我的数据库! :)
    猜你喜欢
    • 2010-11-08
    • 2011-07-12
    • 2017-09-10
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    相关资源
    最近更新 更多