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

时间:2019-02-05 08:22:11

标签: node.js erlang cross-language

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

到目前为止,我最好的主意是作为子进程在cmd中启动该应用程序,但是这确实很难使用,当我抬头看时,我发现所有人都建议不要使用nodejs,但是不幸的是,这不是一个选择对我来说。

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

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

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