Meteor - 向所有客户端发送消息

Meteor - sending a message to all clients

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

有没有办法使用 Meteor 和 flashMessages 来完成这个?或者应该使用其他包?

干杯。

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

常见:

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: 您可能需要过一会儿再删除插入的消息,否则任何新到达的客户端将显示所有过去的消息。或者,您可以只订阅最近的消息。