Meteor开发平台入门 互动版

在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编程3D场景编辑器

远程过程调用 - RPC

Meteor平台已经预置了DDP协议的完整实现,因此我们只需要调用相应的API就可以实现 远程过程调用。

≡ 服务端/后端 —— 定义远程过程

调用Meteor.methods(methods)方法进行服务端远程过程的定义。参数methods是一个 JS对象,其属性表示过程名,对应的值函数就是远程过程的实现函数。

下面的代码实现了一个用来计算员工薪酬的远程过程,尽管计算逻辑相当地不逼近实用系统, 但请关注我们将其抽象为服务端的一个远程服务的思路:

//server side
Meteor.methods({
  'calcSalary':function(name){
    //喜欢的三个员工给多点
    if(name==='Mary') return 100000.00;
    if(name==='Linda') return 50000.00;
    if(name==='Tommy') return 78000.00;
    //其他员工都给一样的薪酬
    return 15000.00;
  }
});

≡ 客户端/前端 —— 调用远程过程

在客户端调用Meteor.call(name,[arg1,arg2],[asyncCallback])方法调用远程过程:

//client side
//异步调用,调用结果或错误将被传入回调函数
Meteor.call("calcSalary","Mary",function(error,result){
  $("body").html("result is " + result);
});

另一种调用方法是使用Meteor.apply()方法执行远程过程。apply()call()的 用法差不多,只是参数需要以数组形式传入,并且有一些附加的调用选项。有兴趣的话可以 查阅文档

执行以下命令复位test应用、删除源文件:

~/test$ meteor reset↵ ~/test$ rm -rf \*↵

拷贝rpc示例代码,运行并查看运行结果:

~/test$ cp ~/demos/rpc/* .↵ ~/test$ meteor↵

理解并修改rpc示例代码,通过练习掌握Meteor平台下RPC的使用方法。