drupal或joomla是否允许组合节点.js并与php socket.io


Does drupal or joomla allow a combination node.js and socket.io with php?

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

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

你可以把它分开,因为你想要与node.js进行一些客户端-服务器通信,你可以把它放在Drupal之外(这是最简单和最干净的方法)。

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

您可以将 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 的事件机器,但相同的逻辑可能适用于你的应用:http://railscasts.com/episodes/260-messaging-with-faye