簡體   English   中英

django實時協作網站

[英]django real time collaborative web site

我的問題是有關django支持的網站中用戶之間的實時協作。

實際上,我需要知道的是是否有可能實現這樣的系統:1)假設使用該網站的所有用戶都是user1,user2,... userN 2)每次其中一個用戶執行某項有趣的操作時,都會通知服務器和其他用戶以更新應用程序狀態和瀏覽器ui 3)可以擴展上一點,不僅涵蓋用戶觸發的事件,還涵蓋其他更常規的事件,例如超時或“每5分鍾”或您可以想像。

我知道瀏覽器到服務器以及服務器到瀏覽器之間的通信可以通過ajax(或諸如Web-socket或SSE之類的較新版本)完成,但是我不了解的部分是如何在發生某些事件時通知用戶。 想到的唯一(壞)想法是將應用程序數據存儲到數據庫中,並在用戶做某事時更新它,同時讓所有用戶從db中輪詢應用程序狀態。 但是我想知道是否有一種避免使用數據庫和輪詢系統的方法,換句話說,是這樣的:

當事件e被觸發時=>發送到所有瀏覽器“事件被觸發”

提前致謝

我將嘗試更好地解釋我的問題:當另一個用戶“ John”執行某項操作時,我想知道如何向用戶“ Frank”發送響應。 問題不在於服務器如何向瀏覽器發送內容,而是如何在不使用數據庫的情況下將john的活動(即單擊按鈕,更改頁面,填寫表格)鏈接到Frank的ui。 例如,考慮一個簡單的聊天頁面,當用戶鍵入某些內容時,必須將鍵入的文本推入所有其他用戶:在這種情況下,我不知道如何將“約翰鍵入某些內容”操作與“發送鍵入的文本”操作鏈接起來到Frank的瀏覽器”。 內存緩存解決方案聽起來不錯,但我想知道是否還有其他諸如發布訂閱或事件系統之類的東西可以用來鏈接不同用戶的連接。

實現一個緩存(即memcache),以避免在Ajax調用檢查更改時訪問數據庫。 如果想花哨的話,請查看基於密鑰的緩存過期以處理緩存失效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM