我想讓網站上的一位用戶可以在我的Django網站上與另一位用戶聊天。我希望被請求者得到一個實時框,並說:「你想聊天嗎?」Django聊天請求的客戶端輪詢(反向AJAX)?
如何以下客戶端輪詢方法的聲音:
上users2暱稱USER1點擊,生成一個POST請求一些/消息/請求,在數據庫中創建類型CHAT_REQUEST的消息。同時,user2的瀏覽器中的一段Javascript代碼重複查詢服務器的消息更新。當它收到類型爲CHAT_REQUEST的消息時,它會打開一個彈出窗口...
此方法的問題似乎是數據庫訪問。
如果客戶端每10秒輪詢一次,並有100個用戶保持打開瀏覽器窗口,那麼每秒鐘有10個數據庫請求。
將這些消息不存儲在數據庫中,而是存儲在Django的RAM或會話信息中會更好嗎?或者將這個數據庫表用PostgreSQL緩存在RAM中,並且檢索速度很快?
想一想爲此使用消息隊列。 – 2010-02-24 21:25:47