我有一個關於流星服務器的發佈,我想知道當前有多少客戶訂閱了該發佈。原因是,我想向「出版物所有者」顯示訂閱次數。如何計算流星發佈訂閱的當前數量
下面是一個簡單的代碼剪斷的我如何努力實現這一目標(當然,而不是做一個console.log
我會遞增/遞減的共享文檔)
Meteor.publish('sessionForId', function (sessionId) {
console.log('increment subscription count for ' + sessionId);
this.onStop(function(){
console.log('decrement subscription count for ' + sessionId);
});
return Sessions.find({_id: sessionId});
});
一般來說這個工作,但也有一些問題:
- 如果我重新啓動服務器,訂閱數是同步的(沒有的onStop事件被觸發停止/殺人/重新啓動服務器時)
- 可能有一些其他電子DGE情況下,可以得到的認購數不同步
我大概可以解決其中的一些被IE啓動時的計數設置爲0,但也許有更好的方式來查詢當前的量的服務器訂閱出版物?
這是一個有趣的想法,很好地工作。正如你所說,因爲它只有一個訂閱我現在堅持我的解決方案(迄今沒有發現任何更多的邊緣情況,除了在啓動時將計數器設置爲0)。我想這將是很好,直到縮放到多個服務器成爲一個問題... – laberning
嗨@looshi我現在使用您的提示發佈數據到所有活動訂戶 - 閱讀更多在:http://stackoverflow.com/questions/31180799/meteor-get-all-subscriber-session-handles-a-publisher-method/31221575#31221575謝謝,湯姆 –