pomelo源码解析之组件Remote

首先提出问题:
1.组件Remote是什么?
2.Remote的作用是什么?

remote模块是远程通讯模块服务端监听模块,作用是作为各个模块间通讯对象的存在。

remote对象在app.components._remote_ 变量中保存.

/**
 * Get remote paths from application
 *
 * @param {Object} app current application context
 * @return {Array} paths
 *
 */
var getRemotePaths = function(app) {
  var paths = [];

  var role;
  // master server should not come here
  if(app.isFrontend()) {
    role = 'frontend';
  } else {
    role = 'backend';
  }

  var sysPath = pathUtil.getSysRemotePath(role), serverType = app.getServerType();
  if(fs.existsSync(sysPath)) {
    paths.push(pathUtil.remotePathRecord('sys', serverType, sysPath));
  }
  var userPath = pathUtil.getUserRemotePath(app.getBase(), serverType);
  if(fs.existsSync(userPath)) {
    paths.push(pathUtil.remotePathRecord('user', serverType, userPath));
  }

  return paths;
};

/**
 * Generate remote server instance
 *
 * @param {Object} app current application context
 * @param {Object} opts contructor parameters for rpc Server
 * @return {Object} remote server instance
 */
var genRemote = function(app, opts) {
  opts.paths = getRemotePaths(app);
  opts.context = app;
  if(!!opts.rpcServer) {
    return opts.rpcServer.create(opts);
  } else {
    return RemoteServer.create(opts);
  }
};

remote使用rpc协议,作为rpc服务端存在。

/**
 * Remote component lifecycle function
 *
 * @param {Function} cb
 * @return {Void}
 */
pro.start = function(cb) {
  this.opts.port = this.app.getCurServer().port;
  this.remote = genRemote(this.app, this.opts);
  this.remote.start();
  process.nextTick(cb);
};

在start函数中,genRemote实现了rpc协议的配置和监听。

此外,需要注意的是Remote逻辑js设置有两个地方。
一个是作为系统调用,sys,对应了pomelo/lib/common/remote路径下的backend或者frontend,是哪一个路径取决于当前的服务器是前端服务器还是后端服务器,也就是说在server.json中配置好的每项中的frontend元素是true还是false。
还有一个是用户调用,user,对应了app/servers/服务器类型名/remote下的各js文件。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux下安装和使用Pomelo,你可以按照以下步骤进行操作: 1. 首先,你需要在Linux系统上安装Node.js。你可以通过包管理器来安装Node.js,具体的安装方法可以参考[这个链接](https://github.com/joyent/node/wiki/Installing-Node.js-via-package-manager#debian-and-ubuntu-based-linux-distributions) 。 2. 安装完成后,你可以使用npm来全局安装Pomelo命令行工具。你可以在终端中输入以下命令来安装Pomelo: ``` npm install -g pomelo ``` 这样,Pomelo的命令行工具就会被安装到你的系统中。 3. 安装完成后,你可以使用Pomelo命令行工具来创建和管理Pomelo项目。你可以在终端中输入以下命令来查看Pomelo的命令行工具使用方法: ``` pomelo --help ``` 这样,你就可以了解到如何创建和管理Pomelo项目了。如果你想要了解更多Pomelo的相关信息,你可以参考[这个链接](https://github.com/NetEase/pomelo/wiki/Home-in-Chinese) 。 总结起来,你需要先安装Node.js,然后使用npm来全局安装Pomelo命令行工具,最后你就可以使用Pomelo命令行工具来创建和管理Pomelo项目了。希望这些信息对你有帮助!如果你还有其他问题,请随时提问。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Linux下Pomelo环境配置](https://blog.csdn.net/xufeng0991/article/details/45850207)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值