【问题标题】:How meteor blaze template deal with server-sent Events?流星火焰模板如何处理服务器发送的事件?
【发布时间】:2016-06-06 05:43:03
【问题描述】:

我想将流星与服务器发送的事件一起应用,例如当另一个个人点击网站或登录时。所有个人的页面应该刷新多少个人登录或在网站上。我不想使用 mongo 集合,因为它只是计算有多少访问者?

你能写一个例子说明客户端如何注意到事件发生在服务器端吗?

【问题讨论】:

    标签: javascript meteor dom-events meteor-blaze


    【解决方案1】:

    我能想到的最好方法是使用 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。

    这不是最安全的方式。

    无论如何,最好的方法是使用集合。

    祝你好运!

    【讨论】:

    • 对不起,我需要的不仅仅是服务器端的变化,我需要服务器向其他客户端发送事件,我的意思是其他客户端知道有人登录。这个方法只有服务器知道。但其他客户端不知道您的 activeVisitors 已添加。
    猜你喜欢
    • 1970-01-01
    • 2017-02-09
    • 2015-09-18
    • 1970-01-01
    • 2018-10-03
    • 1970-01-01
    • 1970-01-01
    • 2016-11-17
    • 2016-05-18
    相关资源
    最近更新 更多