2012-01-02 30 views
1

我有,我想使用Node.js和受now.js分享在任意數量的客戶端的nowjs「羣」中的對象的狀態的應用程序。需要對now.js模式建議對象共享在

至於是什麼,我試圖做一個例子,讓我們說,隨now.js的多房間聊天例子中,可以有任意數量的房間,由用戶選擇的ID。如果用戶知道該ID,他們可以進入(或者是第一個「創建」)該房間。每個房間一旦創建並開始通信,就會保留一個「歷史」對象。歷史記錄對象包含一個或兩個屬性,以及一組註釋對象,每個註釋對象都有一個用戶屬性,一個註釋屬性和一個日期時間屬性。當新用戶連接時,他們應該立即訪問歷史記錄。

是否有一組範圍的對象變量存儲服務器同步的一種方式?我是否以錯誤的方式思考這個問題?我瘋了還是有點慢?

回答

0

好的......我明白了。

我有一個新的功能createHistory(組識別)在服務器端,如果當用戶進入房間(組),它不存在,它返回一個新的歷史對象。如果此用戶剛剛創建了房間,則會發生這種情況。

該歷史對象採用添加,刪除和列表的方法。因爲我需要在從客戶名單,但重要的是我用一個回調像下面這樣:

api.get = (callback) -> 
    callback(_history) 

我分配結果:

everyone.getGroup(this.now.groupid).now.history = createHistory(this.now.groupid) 

現在我可以在服務器上添加歷史:

api.add = (time,user,text) -> 
    _history.items.push {time:time, user:user,text:text} 

,並獲得從我的客戶:

now.history.get (history) -> 
    for item in history 
    #do something... 

唯一的缺點是一旦房間空了,歷史就會消失......我想。雖然我想你可以檢查最後的斷開連接,如果你想要的話可​​以將它保存在某個地方。

+0

工作非常類似的東西,和我與小組合作,它是空的,甚至後,所以理論上我認爲,歷史將持續,即使每個人都已經斷開仍然存在,當然重新啓動服務器將消滅歷史,如果它是不以某種方式保存到磁盤。 – 2012-01-03 22:57:40