将nodejs集成到现有应用程序


Integrating nodejs to existing application

我们正在制作一个小型实时协作web应用程序,到目前为止,它是用运行在apache上的js.php编写的。对于协作和聊天部分,我们需要套接字,所以我们考虑将nodeJS与socket.io.一起使用

这两个答案展示了如何将php/apache和nodeJS放在一起。我的问题是:

  1. 如何在两个服务器之间来回发送消息?(我猜是三个,因为聊天部分需要自己的服务器。)php->nodeJS的cURL;ajax用于nodeJS->php
  2. nodeJS服务器如何为协作(针对当前运行的不同collab项目)/聊天(针对在"其他聊天室"中与每个人通信的不同人群)程序的多个实例提供服务。socket.io有一个聊天程序示例,但它是一个单页的应用程序

我不需要复杂的循序渐进的答案,但我不知道比裸骨nodeJS应用程序更复杂的工作方式,目前我完全不知所措。

  1. 根据我的经验,使用像redis这样的"消息代理"(redis的pub/sub部分)可以很好地允许服务器相互"通信"。你可以退房http://redis.js.org/#api-发布-订阅
  2. Socket.io确实支持使用内置房间进行不同的群组/聊天/项目,请查看此处:http://socket.io/docs/rooms-and-namespaces/#rooms我建议对房间使用一致的命名,例如group-${group.id}g-${group.id}

额外注意:socket.io支持使用redis作为扩展到1个nodejs实例之外的手段,请参阅socket.io-redis npm包。