2

我正在研究开发一个必须使用套接字进行实时更新的网站。我理解 wordpress 很难合并 node.js 和 socket.io,我想知道 drupal 是否就是这种情况。具体来说,我可以将 node.js 和 socket.io 与 php 合并吗?我需要采取哪些具体步骤?感谢您的帮助,当然,如果您给我一个好的答案,我会给您打分。

4

3 回答 3

2

目前有连接到 Drupal、Joomla 和 WordPress 的 Node.js 模块。我为 Joomla 写了一个:https ://github.com/jlleblanc/nodejs-joomla你可以通过 NPM 找到所有这些。首先,您将下载其中一个模块,然后您还将下载 Socket.io 模块。然后,您将编写将 CMS 连接到 Socket.io 的服务器端代码。最后,您将编写客户端代码来与在 Node.js 中运行的套接字通信。

于 2012-10-06T16:06:35.373 回答
1

您可以将其分开,并且由于您希望与 node.js 进行一些客户端-服务器通信,因此您可以在 Drupal 之外拥有它(这是最简单和最干净的方式)。

您使用的 CMS(无论是 Drupal 还是 Wordpress)不会限制您的 JavaScript 使用 socket.io 和 node.js来进行您希望在 CMS 服务器端代码之外进行的调用。你可以例如。读取 Drupal/Wordpress 所做的相同数据库,但使用 Node.js 并将结果直接返回到客户端 JavaScript 脚本。

于 2012-05-23T02:24:15.360 回答
0

您可以将 Socket.IO 与您喜欢的任何技术集成,但您需要将它们视为需要通信的 2 个独立部分。

我看到了 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

于 2012-05-23T06:47:50.713 回答