Meteor - 向所有客户发送消息

时间:2015-08-11 00:12:22

标签: javascript meteor atmosphere flash-message

我正在使用带有flashMessage的Meteor.js构建一个应用程序,以显示用户的信息性消息。目前,该消息与单个用户的点击事件相关联,但我想为所有用户显示该消息。

有没有办法使用Meteor和flashMessages来实现这一目标?或者应该使用另一个包?

干杯。

1 个答案:

答案 0 :(得分:1)

可能有多种方式,但这里有一种方法,使用一组消息:

普通的:

Messages = new Meteor.Collection('messages');

客户端:

if (Meteor.isClient()) {
    Meteor.subscribe('messages');
    var msgs = Messages.find();
    msgs.observeChanges({
        added: function(id, obj) {
            FlashMessages.sendInfo(obj.text);
        }
    });
}

服务器:

if (Meteor.isServer()) {
    Meteor.publish('messages', function() {
        return Messages.find();
    });
}

然后只需将{text: "my text"}之类的邮件插入Messages集合中,它们就会显示在所有客户端上。

PS:您可能希望在一段时间后再次删除插入的消息,否则任何新到达的客户端都将显示所有过去的消息。或者,您可以订阅最近的消息。