我正在研究一个网站的开发,其中套接字使用是实时更新的必要条件。我理解使用wordpress很难合并node.js和socket.io,并且想知道这是否是drupal的情况。 具体来说我可以将php.js和socket.io与php合并吗?我需要采取哪些具体步骤?我很感谢你的帮助,当然如果你给我一个很好的答案,我会给你评价。
答案 0 :(得分:2)
目前有Node.js模块连接到Drupal,Joomla和WordPress。我为Joomla写了一篇:https://github.com/jlleblanc/nodejs-joomla你可以通过NPM找到所有这些。首先,您将下载其中一个模块,然后您还将下载Socket.io模块。然后,您将编写将CMS连接到Socket.io的服务器端代码。最后,您将编写客户端代码以与在Node中运行的套接字进行通信。
答案 1 :(得分:1)
您可以将它分开,因为您希望与node.js进行一些客户端 - 服务器通信,您可以在Drupal之外使用它(这是最简单,最干净的方式)。
您使用的CMS(无论是Drupal还是Wordpress)不会限制您的JavaScript使用socket.io和node.js 来限制您希望在CMS服务器端代码之外进行的调用。你可以,例如。读取Drupal / Wordpress所使用的相同数据库,但使用Node.js并将结果直接返回给客户端JavaScript脚本。
答案 2 :(得分:0)
您可以将Socket.IO与您喜欢的任何技术集成,但您需要将它们视为需要通信的2个独立部分。
我看到2个Socket.IO解决方案与外部服务(Drupal,Joomla,Wordpress等)进行通信:
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