我想做什么:我想在Scala中为几个应用程序(很快就是Java的jar库)添加通信功能,我希望以最轻松的方式完成它,没有Tomcat,战争,GET的路径请求,RPC服务器等
我做了什么:我一直在检查一些库,如Jetty,JAX-RS,Jackson等.但后来我看到了这些示例,它们通常涉及许多不同的文件夹,用于配置,WSDL文件等.大多数示例缺乏主要方法,我没有清楚地了解他们可能有多少额外要求(例如Tomcat).
我打算做什么:我正在考虑简单地在"服务器"上打开一个套接字来监听,然后连接"客户端"并在两个方向上传输一些JSON.这应该是相当标准的,以便我可以以兼容的方式使用其他编程语言(例如Python).
我在问:我想知道是否有一些库让这更容易.不一定使用原始套接字,只是在几行中设置一些进程通信,可能不像Node.js那么简单,但类似的东西.
额外奖励:这很酷
能够使用开放标准使用其他编程语言(例如Python)
有认证
但是我现在并不需要任何这些.
我认为你需要RPC客户端/服务器系统,我建议采取以下两种方法之一:
Finagle - 来自Finagle的超灵活且功能强大的RPC客户端/服务器.您可以使用Thrift定义服务,它将为scala中的客户端/服务器生成存根.使用Thrift,添加Python支持应该很简单.
Spray - 更小的库,专注于创建REST服务.它不像Finagle那么强大,但更容易.REST允许您使用任何其他客户端
远程 - 一个优雅的RPC系统,适合合理的人.有趣且非常有前途的项目,但由于广泛的Scalaz + Shapeless + Macro使用,可能很难开始