Events 在Meteor中将事件从服务器发送到客户端
是否有一种方法可以在不使用集合的情况下将事件从服务器发送到所有或某些客户端 我想向客户端发送带有一些自定义数据的事件。虽然meteor在收集方面做得很好,但在这种情况下,不需要增加复杂性和存储空间 在服务器上,不需要Mongo存储或本地集合。 客户机只需要收到来自服务器的事件的警报,并根据数据采取相应的行动 我知道使用sockjs很容易,但是从服务器访问sockjs非常困难Events 在Meteor中将事件从服务器发送到客户端,events,meteor,Events,Meteor,是否有一种方法可以在不使用集合的情况下将事件从服务器发送到所有或某些客户端 我想向客户端发送带有一些自定义数据的事件。虽然meteor在收集方面做得很好,但在这种情况下,不需要增加复杂性和存储空间 在服务器上,不需要Mongo存储或本地集合。 客户机只需要收到来自服务器的事件的警报,并根据数据采取相应的行动 我知道使用sockjs很容易,但是从服务器访问sockjs非常困难 Meteor.Error执行类似操作。您应该使用集合 如果您所做的只是创建一个集合,向其中添加一个属性并对其进行更新,那么
Meteor.Error
执行类似操作。您应该使用集合
如果您所做的只是创建一个集合,向其中添加一个属性并对其进行更新,那么“增加的复杂性和存储”并不是一个因素
集合只是服务器和客户端之间数据通信的一种形式,它们恰好构建在mongo上,如果您想像数据库一样使用它们,这非常好。但从最基本的角度来说,它们只是一种表示“我想存储一些称为X的信息”的方式,它与您应该利用的发布/订阅体系结构挂钩
将来,除了Mongo之外,还将公开其他数据库。我可以看到,在某个阶段有一个智能包,它可以像您建议的那样将集合剥离到最基本的功能。也许你可以写
该软件包现在已弃用,不适用于>0.9的版本
您可以使用以下软件包,该软件包最初用于广播来自客户端和服务器客户端的消息
没有收集,没有mongodb,用法如下(未测试):
我觉得@Rui和使用一个集合只是为了发送一条信息这一事实让我觉得很麻烦。
同时,一旦你有好几条这样的信息要发送出去,你就可以方便地在你保存这些信息的地方建立一个名为settings或类似名称的集合
我找到的最好的软件包是Streamy。它允许你发送给每个人,或者只是一个特定的用户 向所有人发送消息:
Streamy.broadcast('ddpEvent', { data: 'something happened for all' });
侦听客户端上的消息:
// Attach an handler for a specific message
Streamy.on('ddpEvent', function(d, s) {
console.log(d.data);
});
向一个用户发送消息(按id)
是否有类似于此软件包的替代方案?我们是否可以全局添加此软件包,以便不必在每个必须使用的文件中声明。因此,如果您希望将加速计数据从一个设备流到另一个设备,则使用集合不会影响流速?我想以尽可能快的速度从一个具有加速计数据的设备传输到另一个使用该数据绘制WebGL图形的设备。我认为,消除收集的需要,仅仅是流式传输数据,会更快。
Streamy.broadcast('ddpEvent', { data: 'something happened for all' });
// Attach an handler for a specific message
Streamy.on('ddpEvent', function(d, s) {
console.log(d.data);
});
var socket = Streamy.socketsForUsers(["nJyQvECmkBSXDZEN2"])._sockets[0]
Streamy.emit('ddpEvent', { data: 'something happened for you' }, socket);