Javascript 如何使用meteor在客户端对象上绑定服务器端事件,反之亦然

Javascript 如何使用meteor在客户端对象上绑定服务器端事件,反之亦然,javascript,events,rpc,meteor,Javascript,Events,Rpc,Meteor,可以直接将服务器端事件绑定到meteor中的客户端对象吗 我想更新一个视图,例如当服务器端事件触发时。另一方面,我想在用户单击视图项时触发服务器端方法 我可以参加所有的比赛,但这似乎很奇怪 或者我可以指定一个eventhandler,例如在客户端和服务器范围之外使用,以便它在两侧都可用,并触发/绑定该对象的事件 有些人对此感到困惑,我很感激有人给了我正确方向的提示 问候 费利克斯 更新: 如果用户事件应该映射到服务器端操作,那么使用Meteor方法非常有效。另一种方法仍然不清楚。服务器端的异步操

可以直接将服务器端事件绑定到meteor中的客户端对象吗

我想更新一个视图,例如当服务器端事件触发时。另一方面,我想在用户单击视图项时触发服务器端方法

我可以参加所有的比赛,但这似乎很奇怪

或者我可以指定一个eventhandler,例如在客户端和服务器范围之外使用,以便它在两侧都可用,并触发/绑定该对象的事件

有些人对此感到困惑,我很感激有人给了我正确方向的提示

问候 费利克斯

更新:


如果用户事件应该映射到服务器端操作,那么使用Meteor方法非常有效。另一种方法仍然不清楚。服务器端的异步操作可以将其结果保存在一个发布/订阅给客户端的集合中,而客户端又可以根据反应上下文更新某些视图。但这很奇怪,因为坚持这种信息是缓慢的,浪费了空间和时间。有什么建议吗?

我相信您可以使用服务器端的Collection.observe来“观察”集合上的事件,因为客户端正在插入、更新、删除等。。。如果你只关注收藏,这可能是一个开始。我把它当作一种服务器端事件循环来监视集合的更改


当用户单击视图中的某个对象时,尝试将模板事件绑定到视图css选择器,然后调用Meteor方法,该方法将通知服务器该事件。请参阅将密钥处理程序和/或按钮处理程序绑定到Template.entry.event的示例,然后调用Meteor方法通知服务器发生了什么事情。

在会话中存储进度如何?你可以这样做:

Template.progress.value = function() {
    return Session.get('progress');
}
然后,每当您在服务器上更新会话时,客户机模板将自动获得这些更改


出于好奇,您到底是如何在服务器上执行异步操作的?我还在想办法。

Steeve,谢谢你的回答。Meteor方法非常适合客户端->服务器。但反过来呢。例如,我在服务器端遍历一个RESTful API端点,并希望在客户端显示一些进度(同步资源的进度)。你有什么建议吗?@GeorgieF我不确定我是否完全理解你。我假设您希望客户端能够看到有多少端点正在使用或与其他客户端同步?如果是这样,请像日志记录一样实现它,并让希望监视的客户端订阅日志事件表,并按资源端点和操作进行筛选。当前的安装程序正是这样做的。我的代码的服务器部分遍历RESTful API,并将大量数据传输到Meteor服务器中,并将其持久化。我希望在此进程运行期间显示一些有关客户端的进度信息。因此,我创建了一个服务器端集合,发布它并在客户端订阅它。这是可行的,但每次API树的叶子被持久化时,都会导致服务器端的许多写操作。如果有一些只存储内存的对象可以发布到客户端,这不是很好吗?有什么吗?@GeorgieF如果你使用的是流星系列,那么你基本上使用的是Mongo系列,因此他们写道。我相信你必须为Meteor写一个包(或者等待其他人写)来完成这项工作。也许一个简单的包裹就可以了。我认为这是我目前最有用的。我希望我能帮上点忙。谢谢你的建议。也许开发一个像R这样的包是有益的。