使一个node.js服务器与另一个节点“交谈”的最佳方式是什么?

  • MsgPack?
  • JSON-RPC?
  • Socket.io(可能吗?怎么办?)

编辑:我正在谈论在不同的物理机器上的每个节点进程;

我不明白如何redis可以帮助我在这…

我并不清楚您是否在寻找使两台物理机上的两台节点服务器“互相通话”或一台机器上的两个node.js服务器进程的方法。
(你可以编辑你的问题,使其更清晰)。

你可以看看:

  • 协议缓冲区的节点
  • MsgPack-RPC为节点
  • Websocket.MQ
  • dnode – 这使用socket.io作为传输层
  • IPCNode
  • 带有node-amqp或node-amqp的AMQP和类似RabbitMQ的东西
  • 或者你可以像redis一样使用基于数据库的文档

注意:其中一些可能需要更新

我希望这有帮助

我会去redis 。 pubsub语义非常好。 node_redis客户端库非常快,因为它可以使用名为hiredis的闪电般快速的c-extension-library。 我只是使用json作为我的编码。 这可能会更快。

如果你喜欢,你也可以使用DNode来进行沟通。 我也相信它具有socket.iofunction。 你应该看看源代码来找出这个问题。

从你的问题中不清楚你的意思是一个Node服务器与另一个服务器交谈。 您可以使用发送UDP数据包,build立TCP连接,使用HTTP连接来使用其他人已经指出的任何高级别机制。

对于Node进程通信的一个有趣的场景,你可以看一下Mikeal Rogers的2010 JSConf.eu讲座 。 他解释了如何使用CouchDB来做到这一点。 非常有趣的谈话。