在erlang和nodejs之间通过tcp传递的数据

时间:2013-06-07 12:52:55

标签: node.js tcp erlang

我需要通过tcp在nodejs和erlang进程之间传递数据。 Erlang进程是一种从nodejs进程接收数据并进行一些处理的api服务器。

我想过使用json作为数据的结构,并使用ejson来编码/解码消息。然而,在基准测试时,我发现解码非常慢。大约20k msg / sec。

是否有更好或更快的方式通过tcp向erlang发送数据。有没有办法让我可以在erlang中跳过这个解码过程。

现在数据属于这种类型:

{ “事件”:“某事”, “频道”:“某个频道”, }

erlang将使用事件和频道根据它进行一些处理。

4 个答案:

答案 0 :(得分:0)

您可以尝试其他json libs for erlang,或尝试使用bert

进行序列化

答案 1 :(得分:0)

也许是协议缓冲区?

或者如何发送2行终止字符串并使用普通的旧tcp套接字。 您可以使用inets setopts将数据包类型设置为line。然后,如果您将套接字置于活动状态一次,拥有套接字的进程将逐个发送消息。 或者你可以使用被动模式,你明确地调用recv,它仍然可以逐行提供数据(注意长于缓冲区的行)。

答案 2 :(得分:0)

我会使用thrift。在erlang中实现thrift服务器非常简单。从example看来,在javascript中实现客户端也很简单。

答案 3 :(得分:0)

你应该看看msgpack。它小巧,快速,并且具有为多个联盟构建的库,包括erlang和javascript。

我在多个项目中使用它,并对它的速度和使用起来很容易感到满意。