ajax-PHP-MySQL 是聊天室应用的好组合吗?
Posted
技术标签:
【中文标题】ajax-PHP-MySQL 是聊天室应用的好组合吗?【英文标题】:is ajax-PHP-MySQL a good combination for a chat room app? 【发布时间】:2011-11-24 14:16:23 【问题描述】:我计划为我在大学的朋友创建一个小型聊天室。 因为我不想投资任何钱,所以我会使用一个不允许我安装 IRC 服务器的免费主机。另外我喜欢使用我已经知道的 ajax 和 php。
自刷新 ajax 和 PHP 页面是个好主意吗?就像每一秒一样,ajax 触发一个 PHP 脚本,它返回最新的,比如说聊天历史中的 20 个 mysql 条目。
当用户写东西时,它会被插入到 MySQL 数据库中,你可能已经猜到了。
这是个好主意吗?
您还有其他保存消息的想法吗?比 MySQL 更优化的东西?
或者有什么完全不同的想法可以实现我的目的?
提前致谢! 安迪:)
编辑:哪个更好:MySQL DB 或文本文件? (jquery首选文本文件,为什么?)
【问题讨论】:
【参考方案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 的服务器)
【讨论】:
非常感谢!我会尽量优化我的数据库! :)以上是关于ajax-PHP-MySQL 是聊天室应用的好组合吗?的主要内容,如果未能解决你的问题,请参考以下文章