对于某些语言,有一些库,我的顾虑是有限的,我应该为Elixir和NodeJS做什么?(找不到一个知名的库用于此目的)
然而,对于如何与不同语言的应用程序进行通信的其他见解表示赞赏。我尝试使用套接字连接,JSON和其他类似方法在不同的应用程序之间进行通信。假设在制作PC游戏时,开发人员仍然使用Socket,JSON和类似方法,如果没有,那么它们如何用于与不同语言的应用程序通信?
注意:我是AMA的新手,根据我的阅读,我认为我的问题符合标准,如果没有,那么我会编辑和修剪不需要的内容。
答案 0 :(得分:1)
您应该使用端口与其他程序进行通信。
official docs是最佳参考:
从Erlang的角度来看,Ports提供了与外部世界进行通信的基本机制。它们为外部程序提供面向字节的接口。创建端口后,Erlang可以通过发送和接收字节列表(包括二进制文件)与之通信。
Elixir documentation on ports提供了一个简单的例子:
iex> port = Port.open({:spawn, "cat"}, [:binary])
iex> send port, {self(), {:command, "hello"}}
iex> send port, {self(), {:command, "world"}}
iex> flush()
{#Port<0.1444>, {:data, "hello"}}
{#Port<0.1444>, {:data, "world"}}
iex> send port, {self(), :close}
:ok
iex> flush()
{#Port<0.1464>, :closed}
:ok
如果您正在调用Python或Ruby程序,则可能需要调查ErlPort。我现在有一个项目,它使用端口与Python和Node通信以进行脚本编写。我们使用ErlPort for Python,以及Node脚本的原始Port
API。