2013-08-07 26 views
0

所以我要開發基於和的NodeJS一個socket.io聊天系統,我已經做出了樣機和它的作品,這是停留在我的腦海裏的唯一的事情是如何存儲數據庫中的聊天消息。使用即時通訊+的NodeJS和socket.io mysql的

當用戶點擊輸入按鈕時,我想這不是一個好主意,因爲這是實時聊天,您可以在30-60分鐘內從用戶處獲得1000個即時聊天。

問題是什麼時候將數據存儲在數據庫中,因爲我不認爲存儲馬上當用戶點擊進入將在長期的工作嗎?

聊天適用於同樣的想法,如Facebook。

+0

爲什麼不把數據緩存在內存中,然後每分鐘存儲一次,並清除緩存? – Gomino

+0

好吧,這將是基本相同的事情,你會做一個插入每分鐘的語氣,我想這個想法是分散在不同的時間段。 – Uffo

回答

2

如果你不保存此刻的消息,你打算如何拯救他們,當你想?

發送的消息已經被傳遞到客戶端和服務器不再有他們,你不能使用客戶端將它們存儲在數據庫中。

您需要爲用戶發送它們存儲的消息。

+0

這裏好點,我唯一的擔心是關於服務器,如果這可以完成,但我想你從經驗的角度講,你認爲Facebook立即將它們存儲在數據庫或任何其他大網站?我不知道他們是如何在這些大網站上做的,所以這就是爲什麼我要求 – Uffo

+0

我猜想Facebook會立即存儲消息。請將消息發送給您的朋友,快速關閉瀏覽器,清除Cookie和緩存,然後重新登錄,您將看到您的消息仍然存在。 – Clarkey

+0

我不認爲MySQL會死在你身上。但是,如果你有足夠的幸運每秒發生這麼多的插入,那麼你可以開始負載平衡你的MySQL數據庫。 – Clarkey