【发布时间】:2012-05-29 13:41:53
【问题描述】:
我正在研究开发一个必须使用套接字进行实时更新的网站。我理解 wordpress 很难合并 node.js 和 socket.io,我想知道 drupal 是否就是这种情况。 我可以将 node.js 和 socket.io 与 php 合并吗?我需要采取哪些具体步骤?感谢您的帮助,当然,如果您给我一个好的答案,我会给您打分。
【问题讨论】:
标签: php drupal node.js joomla socket.io
我正在研究开发一个必须使用套接字进行实时更新的网站。我理解 wordpress 很难合并 node.js 和 socket.io,我想知道 drupal 是否就是这种情况。 我可以将 node.js 和 socket.io 与 php 合并吗?我需要采取哪些具体步骤?感谢您的帮助,当然,如果您给我一个好的答案,我会给您打分。
【问题讨论】:
标签: php drupal node.js joomla socket.io
目前有连接到 Drupal、Joomla 和 WordPress 的 Node.js 模块。我为 Joomla 写了一个:https://github.com/jlleblanc/nodejs-joomla 你可以通过 NPM 找到所有这些。首先,您将下载其中一个模块,然后您还将下载 Socket.io 模块。然后,您将编写将 CMS 连接到 Socket.io 的服务器端代码。最后,您将编写客户端代码来与 Node 中运行的套接字通信。
【讨论】:
您可以将 Socket.IO 与您喜欢的任何技术集成,但您需要将它们视为需要通信的两个独立部分。
我看到 Socket.IO 与外部服务(Drupal、Joomla、Wordpress 等)通信的 2 个解决方案:
1) 为您的 Socket.IO 应用程序创建一个 REST API(例如,使用 Express 作为 API 层,然后使用 EventEmitter 将消息传递给 Socket.IO)。
2) 我认为更好的解决方案是使用 Redis、RabbitMQ 或 ZeroMQ 等消息队列。 Drupal 网站会通过通道向 Socket.IO 发送消息,然后 Socket.IO 会将该消息发送给客户端。
如果您正在创建一个还需要身份验证的系统,我建议您不要让您的用户直接使用 Socket.IO 发送消息,而是对您的主服务器进行 Ajax 调用(例如 Drupal)。这样您就可以更轻松地检查用户的身份。 (这种情况适合需要身份验证的基于聊天的系统)
虽然此视频教程适用于带有 Faye 的 EventMachine,但同样的逻辑也适用于您的应用:http://railscasts.com/episodes/260-messaging-with-faye
【讨论】:
您可以将其分开,并且由于您希望与 node.js 进行一些客户端-服务器通信,您可以在 Drupal 之外拥有它(这是最简单和最干净的方式)。
您使用的 CMS(无论是 Drupal 还是 Wordpress)不会限制您的 JavaScript 使用 socket.io 和 node.js 来进行您希望在 CMS 服务器端代码之外进行的调用。你可以例如。读取 Drupal/Wordpress 所做的相同数据库,但使用 Node.js 并将结果直接返回到客户端 JavaScript 脚本。
【讨论】: