2011-01-23 47 views
5

我不是在尋找某人來編寫答案,但我想知道是否有人可以簡單介紹如何使用Django和node.js來獲得即時的事件驅動更新。在Django中使用node.js進行基於事件的更新?

我有一個「新聞飼料」的種類,我希望該飼料更新時,新項目進來。我有的一般想法是打開一個連接到節點服務器通過javascript,有節點服務器「休眠」,直到一個新項目進入,此時它返回數據,Django端啓動另一個連接。

當談到實際編寫node.js代碼時,我很困惑 - 文檔顯示了很多信息,但沒有顯示如何使用這些信息。我會很感激,如果有人能指示我去哪裏尋找這個 - 我是否使用類似EventEmitter的東西?我怎樣纔能有一個Django端腳本要求節點服務器只監聽關於特定用戶的事件?

在此先感謝!

回答

7

沒關係,我想我明白了。我創建了自己的發射器,並讓它監聽我自己的事件。

var myemitter = new events.EventEmitter(); 

當從Django的請求進來,

myemitter.addListener('action'+userid,function(data){ 
    //do something with data 
} 

該請求將通過電話$.ajax()通過JavaScript代碼將基本上長輪詢,等到事情發生了。當服務器發生某些事情時,即用戶做了某事,服務器就會發布到節點。請求將導致事件被髮射:

myemitter.emit('action'+userid,data); 

...這導致來自第二代碼段的回調函數被調用。然後它找到與該請求相關聯的響應對象,返回信息,並由Django端腳本解析。

希望這可以幫助別人,我想我只是發佈我的答案。

相關問題