我有一个关于流星服务器的发布,我想知道当前有多少客户订阅了该发布。原因是,我想向“出版物所有者”显示订阅次数。如何计算流星发布订阅的当前数量
下面是一个简单的代码剪断的我如何努力实现这一目标(当然,而不是做一个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谢谢,汤姆 –