Javascript 在Node.js中,如何让一台服务器调用另一台服务器上的函数?

Javascript 在Node.js中,如何让一台服务器调用另一台服务器上的函数?,javascript,node.js,ipc,rpc,Javascript,Node.js,Ipc,Rpc,假设我有两台web服务器。他们都刚刚安装了Node.js,正在运行一个网站(使用Express)。非常基本的东西 服务器A如何告诉服务器B执行功能?(在node.js内部) 最好……是否有一个npm模块可以让我很容易地使用它?您很可能想要一个类似JSON-RPC的节点模块。在快速搜索之后,是一个用于Connect的JSON-RPC中间件模块,非常适合与Express一起使用 还有一个看起来也很有希望 服务器A如何告诉服务器B 执行一个函数 例如,您可以使用其中一个模块。更新:我在下面创建和链接的

假设我有两台web服务器。他们都刚刚安装了Node.js,正在运行一个网站(使用Express)。非常基本的东西

服务器A如何告诉服务器B执行功能?(在node.js内部)


最好……是否有一个npm模块可以让我很容易地使用它?

您很可能想要一个类似JSON-RPC的节点模块。在快速搜索之后,是一个用于Connect的JSON-RPC中间件模块,非常适合与Express一起使用

还有一个看起来也很有希望

服务器A如何告诉服务器B 执行一个函数


例如,您可以使用其中一个模块。

更新:我在下面创建和链接的库当前未维护。请查看此线程上的其他答案


您需要的是RPC。您可以构建自己的,但根据您需要的功能,这可能会很耗时

考虑到我必须投入的时间,我建议找一个适合你目的的像样的图书馆,而不是手工翻阅。我的用例需要额外的复杂特性,比如选择性RPC调用,我找不到任何足够轻量级的特性,所以我不得不推出自己的

在这里。

请检查,这是一个用于JavaScript的RPC实现

它可以在浏览器和Node.js服务器之间工作,也可以在多个Node.js进程之间工作:

//Node.js进程1
const express=require('express');
const wildcard middleware=require(“@wildcard api/server/express”);
const{endpoints}=require('@wildcardapi/server');
endpoints.hello=异步函数(){
const msg='Hello from process 1';
返回味精;
};
常量app=express();
使用(通配符中间件());
app.listen(3000);
//Node.js进程2
const wildcard=require(“@wildcard api/client”);
const{endpoints}=require('@wildcardapi/client');
wildcard.serverUrl=http://localhost:3000';
(异步()=>{
const msg=wait endpoints.hello();
console.log(msg);//打印“来自进程1的Hello”
})();

您可以浏览示例的代码。

JSON-RPC中间件…第一个链接…基本上是HTTP REST,对吗?JSON-RPC不必通过HTTP。它也不是完全RESTful的,因为在使用HTTP时,唯一的请求类型是GET。JSON-RPC是发送远程过程调用(RPC)的标准,类似于XML-RPC。阅读更多:我不能只使用HTTPREST吗?(basic post/get)@Owalla:是的,你可以,但是你需要在node.js程序中绑定你的REST接口和对特定API的调用。像dnode这样的模块可以为您节省时间和代码,因为它们可以为您抽象。如果只是服务器到服务器的通信,您也可以使用标准的网络模块和套接字,但这也需要编写比使用RPC库更多的代码?我想,这样可以更容易地将不同的服务器部署到不同的实例。PS:-我不太了解RPC模块。