2011-09-25 62 views
1

我計劃在我的大學爲我的朋友創建一個小型聊天室。 因爲我不想投資任何資金,我會使用一個免費的主機,它不允許我安裝IRC服務器。我也喜歡使用ajax和PHP,因爲我已經知道它們。是ajax-PHP-MySQL的聊天室應用程序的一個很好的組合?

是一個自我刷新的ajax和PHP頁面的好主意嗎?像每秒一樣,ajax觸發一個返回最新的PHP腳本,假設聊天記錄中有20個MySQL條目。

當用戶寫入內容時,它會插入到MySQL DB中,因爲您可能已經想清楚了。

這是個好主意嗎?

您是否有任何其他想法來保存消息?比MySQL更優化的東西?

或者任何完全不同的想法可以實現我的目的?

在此先感謝!
andy :)

編輯:什麼是更好的:MySQL數據庫或文本文件? (文本文件是由jQuery優先選擇,爲什麼?)

回答

2

如果您使用內存表,並且您需要選擇正確的索引,則可以節省很多HDD速度。

實例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服務器)

+0

非常感謝!我會盡量優化我的數據庫! :) –

1

這是一個非常典型的做法一個基本的聊天室,似乎對我來說很好。我建議的唯一的事情就是爲每個聊天記錄分配一個自動增量ID,以便你的ajax可以跟蹤它收到的最新消息。這樣,如果最後收到的消息的ID爲100,則ajax可以請求ID爲101或更高的項目。然後,您只需提取新消息,並將其添加到聊天窗口中,而不是刷新整個頁面。

+0

是的,謝謝你的想法!這是一個很棒的優化方法!欣賞它! :D –

0

爲什麼你想要再次發明電力?正如你所說:

或者任何完全不同的想法,可以實現我的目的?

有很多聊天室,你爲什麼不使用它們?

無論從編程的角度來看,如果你打算做小聊天室,你的想法看起來不錯。但隨着用戶增加,您將面臨服務器上的超載,並可能導致免費主機崩潰。

+0

是的,我知道這裏有很多免費的,但想法是自己編碼,從上到下。我將在大學後期需要它,因爲我需要證明我可以編寫代碼,創建個人項目,聊天室中的聊天室真的很缺乏...... :)謝謝! :D乾杯! –

2

也許一個免費的主機應該有不好的數據庫。所以,如果你不斷地訪問它,你的聊天會非常慢(除非聊天不會被大量使用)。

不管怎麼說,有你可以用你的目的(,而不是由你自己發展)一些免費的選擇:

http://www.phpfreechat.net/

http://www.phpopenchat.org/

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

這裏有一些t utorials舉例:

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/

商祺!

+0

嘿,謝謝!但是我仍然想要自己開發它......現在就是這個想法,我也可以將它用作可以編碼的演示,稍後我將需要它。 –

+0

我想我只是愛上了jquery! XD –

+0

酷,所以繼續吧!教程可以幫助你開發你的東西:) –

相關問題