首页 文章

实现对meteor js app的网络通知

提问于
浏览
0

您好我正在尝试学习Meteor Js,我开始构建一个简单的任务管理器应用程序 . 当用户从输入添加任务时,我想添加通知(使用通知api) . 我的问题是我找不到从服务器端发送用户之间通知的方法 . 到目前为止我有什么:

Template.listPage.events({

      'submit #newItem':function(e){
        e.preventDefault();

//variables to insert here here. i dont post for space issues.
// Call server method for insert into db 

Meteor.call('addItem',item,d,user,datestring,currentList,listName,assign);

// This is what i m trying to implement   
        var items = todos.find({name:item}).observe({
         added:function() {
            var n = new Notification("hello new task added")
          }

        })


      },

以上工作原理如下:通知仅显示给添加任务的用户(不是很有用) . 如何在服务器端使用它,以便: Show the notification to all users using the app? 这可能或我必须使用推送通知包吗? PS:我要求用户在Meteor.startup上接收通知 .

2 回答

  • 0

    问题是您在click事件中指定了observe . 因此,只有触发事件的用户(即点击按钮)才会收到通知 .

    为了激活每个人的观察者,请执行以下操作:

    Template.listPage.rendered = function(){
        todos.find().observe({
            added: function() {
                ... do whatever you want to do here
            }
        })
     };
    
  • 1

    要添加通知,您可以使用 yogiben:notifications 这样的包:https://atmospherejs.com/yogiben/notifications

    (现在可能有更好的包装 . 在大气层搜索 . )

    或者,您可以推出自己的解决方案 . 基本思路是添加一个名为 Notifications 的集合 . 然后随时添加通知,并将相关通知发布给您想要的任何用户 .

    只要您将相关的 todos 发布给不同的用户,您的问题中的代码也会起作用 .

相关问题