如何从服务器调用Meteor客户端方法?

时间:2014-11-07 07:42:50

标签: meteor

我们可以在Meteor服务器上定义方法并从客户端调用它们,有没有办法从服务器调用客户端定义的方法?

1 个答案:

答案 0 :(得分:2)

根据官方Docs,没有直接的方法从服务器调用客户端方法,但您可以通过使用名为anti:methods的智能包

来实现这一点
  1. 您需要设置将用于与此特定客户端通信的clientId。

    Tracker.autorun(function() {
       Meteor.ClientCall.setClientId(Meteor.userId());
    });
    
  2. 定义方法

    Meteor.ClientCall.methods({
      'chatMessage': function(username, message) {
        ...
      },
    });
    
  3. 调用方法

    Meteor.ClientCall.apply(clientId, method, arguments, callback)
    
  4. 注意:此软件包功能不完整。有关详细信息,请查看readme

    或者,如果您只想在服务器和客户端中重复使用某些代码,则可以在公共文件夹中创建一个全局函数,并从任何您想要的地方调用它。只需确保它不包含任何特定于浏览器的代码,并在调用它的函数之前加载它。