是ajax-PHP-MySQL一个聊天室应用程序的好组合?

时间:2011-09-25 10:51:14

标签: php mysql ajax chat livechat

我计划在我的大学为我的朋友们创建一个小聊天室。 由于我不想投入任何资金,我将使用一个免费的主机,它不允许我安装IRC服务器。我也喜欢使用ajax和PHP,因为我已经了解它们。

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

当用户写东西时,它会被插入到MySQL数据库中,正如您可能已经想到的那样。

这是个好主意吗?

您对保存邮件有任何其他想法吗?比MySQL更优化的东西?

或任何完全不同的想法可以达到我的目的?

提前致谢!
安迪:)

编辑:什么是更好的:MySQL数据库或文本文件? (jquery首选文本文件,为什么?)

4 个答案:

答案 0 :(得分:2)

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

示例DB结构:

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服务器)

答案 1 :(得分:2)

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

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

  

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/

问候!

答案 2 :(得分:1)

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

答案 3 :(得分:0)

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

  

或任何完全不同的想法可以达到我的目的?

有很多聊天室,为什么你不使用它们?

无论如何从编程角度来看,如果你打算建立一个小聊天室,你的想法似乎很好。但随着用户增加,您将面临服务器上的过载,并可能导致免费主机崩溃。