2011-04-28 98 views
2

如果你想在Django中實現聊天(即實時文本對話),你會怎麼做呢?你會如何去django實現聊天?

我在它的想法(請不要對小白憐憫) -
創建存儲歸檔消息和一個用於存儲當前消息的表。
並通過使用javascript每20秒查詢當前消息表填充當前聊天。但是這個感覺這麼錯。
必須有更好的方法。我聽說過所謂的推技術。我如何使用它與Django?
P.S.我的網站正在共享託管在Dreamhost上。

回答

1

如果你主要關心的前端,看看彗星。

至於後端,你有很多不同的選擇。更直接的方法是將每個聊天消息存儲在給定聊天室的數據庫中。聊天室表和聊天消息之間可能有多對多的關係。

其他解決方案包括未內置到Django中的鍵值存儲數據庫。您可以將消息推送到redis集合中,或將活動的聊天室數據存儲在memcached中。

由於這是在Dreamhost上,我會看看數據庫選項。事實是,你必須存儲一些數據與每個聊天消息。是誰製作的,是什麼時間製作的,等等。這將在你的環境中的某個時刻進入桌面。試着讓它工作,然後看看你是否可以加快速度。

+0

Upvote for「只是讓它工作,然後看看你能不能更快。」 – Sussagittikasusa 2011-04-28 08:01:19

3

大多數網絡聊天應用程序傾向於使用彗星編程。彗星並不是真正的推動技術,而更多的是對它的模擬。首先彗星有不同的實現,但通常使用池和ajax來重複檢查服務器,看看是否有消息。彗星通常會導致過多的往返行程,因此已經採取了一些步驟來尋找更合適的替代方案,如波什只是保持連接暢通。這實際上可以被認爲是真正的推動,而不是彗星。維基鏈接下面列出了替代品,但通常我認爲彗星和波什是最常用的聊天方法。你甚至可以將兩種方法一起使用。這裏有一些鏈接。