[英]Socket.io and ajax request to php page
我正在设置一个将使用socket.io的实时应用程序。 当前在php中有一些功能上的核心,它利用了memcache和mysql后端。
在socket.io服务器中向处理此问题的php页面发出ajax请求(如果可能的话)是否有意义? 有很多MySQL查询,我知道可以在node.js中完成,但如果可能的话,我宁愿将此部分保留在php中。
所以,我的问题是,这是正确的做法吗? 从socket.io服务器中调用php页面,然后返回到客户端?
谢谢!
通过暴露RESTful API或一些PHP脚本(您可以将它们发布到socket.io node.js服务器上或从其中获取),使您的node.js应用程序与PHP应用程序通信不会出现任何问题。 有很多npm模块(例如request )可以使HTTP请求变得轻而易举。 在节点应用程序中从PHP检索数据后,可以使用socket.io将数据emit()
到前端的socket.io客户端。
没有什么不妥。 您只需使用RESTful API来访问MySQL数据,从而隔离数据库详细信息。
如果有一天您对PHP感到厌倦,则可以轻松切换到Ruby,Python或Whatever,而无需接触node.js。 如果您的逻辑已经用PHP编写(您正在升级旧的应用程序),那么当您可以重用已经测试和调试的内容时,它的意义就更大了。 许多人提倡在系统之间进行这种分离。 只需看一下所有SOA(面向服务的体系结构)的嗡嗡声。
在我工作的地方,我们在项目中使用了这种架构(尽管在本例中是一个称为Java EE应用程序的ASP.NET MVC网站),它为我们提供了很好的服务。 使用node.js的事件模型,它会更好,因为您不会阻塞等待PHP。
但是当然有一些缺点
因此,您需要问自己,您的问题是否确实需要该解决方案。 但在很多情况下,答案可能是肯定的。 只是不要忘记保持简单和愚蠢的优点(KISS原则)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.