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