Articles of erlang

erlang将http查询绑定到ip(或接口)

在nodejs中,我们有http.request(options [,callback])和localAddress(用于绑定networking连接的本地接口)。 这工作很好。 我怎样才能在Erlang中实现呢? 现在我使用ibrowse来处理请求,但这不是一个限制。 我想我需要看看在erlang中朴素的http是如何工作的,但是可能会有人遇到这个问题。

如何提取node.js中的对象使用bert.js解码对象?

我有一个相当于这个BERT的对象(包含可读性): {"Hello",[{1,"john","john123"},{2,"Michale","michale123"}]} 在节点中: var S = Bert.bytes_to_string([131,104,2,107,0,5,72,101,108,108,111,108,0,0,0,2,104,3,97,1,107,0,4,106,111,104,110,107,0,7,106,111,104,110,49,50,51,104,3,97,2,107,0,7,77,105,99,104,97,108,101,107,0,10,109,105,99,104,97,108,101,49,50,51,106]); var Obj = Bert.decode(S); console.log(obj); 我可以在控制台中看到如下。 { '0': { type: 'bytelist', value: 'Hello', toString: [ Function ], repr: [ Function ] }, '1': [ { '0': 1, '1': [ Object ], '2': [ Object ], type: 'tuple', length: 3, value: [ Object ], repr: [ Function ], toString: […]

什么是websocket的最佳工具?

我有我的项目中的通知node.js。 我使用socket.io和redis pub / sub。 我喜欢socket.io,因为它给我所有types的传输(websocket,长轮询等)的一个接口,它给了我crossbrowser客户端库。 但是我在调​​试nodejs上的代码时遇到了很多问题。 我经常遇到CPU问题,很难找出原因。 这就是为什么我想用工具而不是node.js也许去或erlang,但我找不到工具,如这些语言上的socket.io

部署新代码或热交换代码时保持套接字连接?

更新代码时是否可以维护套接字连接,或重新启动进程或热交换代码? 我正在考虑下一代正在处理的分布式服务器应用程序(目前用node.js编写),我希望只要服务器和远程客户端能够保持TCP套接字打开状态networking连接,即使在更新服务器代码或特定实例重新启动或消失时也是如此。 是否有以下可能? 代码重新启动之前,它将存储套接字信息,而远程端保持打开状态。 看来这在C中完全可行 代码重新启动之前,它将套接字信息发送到另一个实例或进程? 在Erlang的情况下,如果一个特定的代码被热交换,那么数据结构和连接是否不受干扰? 在一些元组空间分配套接字。 我对此一无所知,但至less听起来很有趣。 任何参考资料我应该看看? 在我看来,Erlang对于这个系统的未来版本来说是个不错的select,但是除了玩具的例子之外,我还没有使用它。 编辑:在Linux上运行

在node.js和erlang vm中调用一个阻塞库

在node.js中,如果我的线程调用了一个阻塞库,它将不能接受任何更多的请求,直到它从库中取回响应。 这与Erlang虚拟机的情况是否一样 – 也就是说,如果其中一个进程调用阻塞库,其他进程是否可以继续接受请求?

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

我需要通过tcp在nodejs和erlang之间传递数据。 Erlang进程是一种从nodejs进程接收数据并进行一些处理的api服务器。 我想使用json作为数据结构,并使用ejson来编码/解码消息。 然而,在基准testing中,我发现解码速度非常慢。 大约20k msg / sec。 有没有更好或更快的方式通过TCP发送数据到erlang。 有没有办法让我可以在erlang中跳过这个解码过程。 现在数据是这种types的: {“event”:“someevent”,“channel”:“某个频道”,} erlang会使用事件和通道来做一些基于它的处理。

什么是存储大量sockets的最佳做法?

为了testing的目的,我想创build一个套接字服务器,它将包含1000多个并发的套接字连接,分布在AWS上的X个ec2实例上(仍然决定使用JXCore,Java或Erlang的node.js)。 这些套接字将每隔10秒将消息随机发送到另一个套接字。 我只是无法理解如何有效地存储和读取这些套接字。 我可以看到的两个选项是将套接字对象存储在应用程序本身的地图中,或者将套接字存储在快速数据库(如Redis)中。 将套接字存储在应用程序内部的数据结构中的问题是它将能够扩展,变得健壮,以及当数百万个套接字需要find另一个套接字时,读取性能如何。 而且如果我把它们存储在像redis这样的数据库之类的地方,每次都必须有一个networking调用,因为Socket A需要知道Socket B发送消息的位置。 我担心这会大大降低性能。 我想知道什么是可扩展套接字服务器的最佳做法,因为我无法find任何在互联网上回答这个问题。 我在网上find的每个套接字服务器简单地广播到每个其他套接字,而不是有特定的套接字,只包含像10个套接字。

在Erlang中反向代理/转发HTTP请求

我已经search了networking,发现inets和mod_esi,但是我需要build立一个模块,它接受http://localhost:8000的HTTP请求,然后反向代理到http://localhost:9000而不进行HTTP转发,因为我需要代理服务器在任何时候对请求者都是匿名的。 在Node.JS中可以find类似的东西: https : //github.com/nodejitsu/node-http-proxy 。 有人能指出我的方向吗?

节点的networking工作者是否会光顾erlang?

我很好奇Erlang是否会被Node.js杀死,而Node.js可能会非常stream行,速度很快,并且有networking工作者 。 可能吗? 为什么? 但是多处理器并发性呢? 不是将程序扩展到多核计算机所必需的线程? 进程是扩展到多核计算机所必需的,而不是内存共享线程。 可扩展系统的基础是快速networking和非阻塞devise – 其余的是消息传递。 在未来的版本中,Node将能够派生新的进程(使用Web Workers API),这很适合当前的devise。

Erlang风格的Node.Js?

当谈到Node.Js和Erlang时,我是一个完整的noob。 但是不可能构build一个模拟Erlang行为的Node.js应用程序? 例如,您可以将json消息传递到分布式node.js服务器园区,甚至可以将新代码传递给那些不会离线的服务器,就像erlang一样。 如果您收到消息时激活了消息处理程序callback,则此消息处理程序可以检查消息是否为代码更新消息,从而使用新代码replace自身(当前处理程序)。 所以应该有可能让Node.Js服务器没有宕机代码更新W / O太多大惊小怪,对吧?