0%

erlang与其他语言通信的几种方式

一个项目的开发可能涉及若干种语言,前端、后端、后台都有不同的适合的语言,比如在游戏中,前端用C+Lua,后端用Erlang,后台用PHP,不同语言直接的通信就成了一个比较棘手的问题,下面简单讨论几组可能的实现方式:

Socket

基于自定义协议的Socket请求

前端(或者后台)与后端约定好协议格式,以协议的方式通信。

基于HTTP的请求

后端架设一个HTTP服务器,前端(或者后台)通过HTTP请求将需要执行的命令以参数的形式传递给后端。

SSH

Erlang开启SSH服务器,前端(或者后台)通过插件SSH登录到Erlang服务器,执行命令。

1
2
3
Eshell V5.10.4  (abort with ^G)
1> ssh:start().
2> ssh:daemon(10000, [{user_passwords, [{"root", "123456"}]}]).
1
2
[root@localhost ~]# sshpass -p 123456 ssh -p 10000 root@127.0.0.1 'lists:seq(1, 10).'
[1,2,3,4,5,6,7,8,9,10]