我们可以在Meteor服务器上定义方法并从客户端调用它们,有没有办法从服务器调用客户端定义的方法?
答案 0 :(得分:2)
根据官方Docs,没有直接的方法从服务器调用客户端方法,但您可以通过使用名为anti:methods的智能包
来实现这一点您需要设置将用于与此特定客户端通信的clientId。
Tracker.autorun(function() {
Meteor.ClientCall.setClientId(Meteor.userId());
});
定义方法
Meteor.ClientCall.methods({
'chatMessage': function(username, message) {
...
},
});
调用方法
Meteor.ClientCall.apply(clientId, method, arguments, callback)
注意:此软件包功能不完整。有关详细信息,请查看readme。
或者,如果您只想在服务器和客户端中重复使用某些代码,则可以在公共文件夹中创建一个全局函数,并从任何您想要的地方调用它。只需确保它不包含任何特定于浏览器的代码,并在调用它的函数之前加载它。