gpt4 book ai didi

.net - 如何使用 Erlang 与其他网络应用程序交互?

转载 作者:行者123 更新时间:2023-12-02 20:00:40 25 4
gpt4 key购买 nike

我正在学习 erlang,我对 mnesia db 非常着迷。我想使用 erlang 作为后端在 C#/F# 中构建一些现实世界的应用程序。

我正在寻找一个好的解决方案来与外部世界的 erlang 节点进行通信。

到目前为止我发现了什么:

(A) OTP.net ,一个实现“ native ”erlang 通信协议(protocol)的开源 .net 库

这里的问题:

  • 该库还不是很成熟
  • 我不喜欢从 Java 移植的对象模型(太多 BCL 类几乎完全相同的复制品)
  • 我不喜欢用于连接的线程模型。
  • 需要许多开放的 TCP 端口
  • 缺乏安全性

(B) 在 erlang 中使用端口/套接字并实现自定义协议(protocol)。

这里的问题:

  • 我没有任何经验
  • future 版本难以维护/扩展

您对此主题有什么建议或经验吗?

我应该研究 OTP.net 库以使其满足我的需求,还是尝试从头开始实现新协议(protocol)?

JSON 或 REST 解决方案怎么样?有没有 erlang 库可以做到这一点?

最佳答案

端口/套接字解决方案是一个好主意,而且并不像看起来那么难。 Google's protocol buffers正是您所需要的。它非常易于使用、高效且可维护。它具有 C#、erlang、java、python 等的实现(请参阅 OtherLanguagesdeveloper guide)

您可以使用 Protocol Buffer 来定义请求和响应协议(protocol)结构。然后使用它在 erlang 和任何其他支持的语言之间进行通信。 tutorial会解释这一切。之后,您所需要做的就是通过端口发送响应。

这种方法的优点是:

  1. 您可以轻松扩展和更改 future 的协议(protocol)
  2. 它比REST 方法
  3. 目前 Google 将其用于几乎所有内部​​RPC协议(protocol)和文件格式

关于.net - 如何使用 Erlang 与其他网络应用程序交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/807355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com