如何在 erlang 应用程序和 nodejs 服务器之间建立通信?

How to estabilish communication between an erlang application & a nodejs server?

我有一个带 API 的 erlang 应用程序,我需要从 nodejs 服务器调用这些 API 函数并处理响应。例如:Nodejs发送数据给app,app处理数据再返回给nodejs,最后nodejs处理结果。

到目前为止,我最好的想法是在 cmd 中将应用程序作为子进程启动,但这真的很难处理,当我查找时,我发现所有的人都建议不要使用 nodejs,但不幸的是,事实并非如此我的一个选择。

编辑:为了澄清,我的问题是从 nodejs 调用 erlang 函数的最佳方式是什么

不确定我是否完全理解您的要求,但是对于 运行 服务器上的 nodejs 项目,我强烈建议使用 pm2。 pm2 将管理您的 nodejs 应用程序。参见 http://pm2.keymetrics.io/

我不知道您发送的数据有多大,但如果数据足够大(即处理时间超过 200 毫秒),您可能需要考虑异步处理。

我的建议是使用 Erlang 开源 Web 服务器 Cowboy、Mochiweb、Webmachine 之一将 Erlang 应用程序 API 实现为 RESTfull API。在这种情况下,您可以使用 HTTP 客户端从 NodeJs 调用 Erlang API(您可以找到很多针对 Javascript 和 NodeJS 的 HTTP 客户端的实现)。这种方式易于实现和维护。

没有简单的方法从 JavaScript 远程调用 Erlang 函数。 Erlang 只能与 C/C++(Erlang 端口)和 Java(JInterface)应用程序通信。