【发布时间】:2016-06-06 05:43:03
【问题描述】:
我想将流星与服务器发送的事件一起应用,例如当另一个个人点击网站或登录时。所有个人的页面应该刷新多少个人登录或在网站上。我不想使用 mongo 集合,因为它只是计算有多少访问者?
你能写一个例子说明客户端如何注意到事件发生在服务器端吗?
【问题讨论】:
标签: javascript meteor dom-events meteor-blaze
我想将流星与服务器发送的事件一起应用,例如当另一个个人点击网站或登录时。所有个人的页面应该刷新多少个人登录或在网站上。我不想使用 mongo 集合,因为它只是计算有多少访问者?
你能写一个例子说明客户端如何注意到事件发生在服务器端吗?
【问题讨论】:
标签: javascript meteor dom-events meteor-blaze
我能想到的最好方法是使用 MongoDB 集合,但是,如果您说不想使用 mongoDB 集合,那么安全性较低的方法是
// lib folder main.js
ActiveVisitors = 0;
// server folder methods.js
Meteor.methods({
incrementVisitor: function() {
ActiveVisitors++;
},
noOfVisitors: function(){
return ActiveVisitors;
},
decrementVisitor: function(){
ActiveVisitors--;
}
});
// client side code
//somewhere in your client code
Accounts.loginWithPassword(user, password, function(err){
if(err) console.log(err);
else Meteor.call("incrementVisitor");
});
// somewhere with logout code
Accounts.logout(function() {
Meteor.call("decrementVisitor");
});
现在使用 noOfVisitors 方法获取当前访问者并尝试使用包simple:reactive-method 获取实时计数
您应该期待的几件事是,每当服务器重新启动时,计数就会回到 0。
这不是最安全的方式。
无论如何,最好的方法是使用集合。
祝你好运!
【讨论】: