繁体   English   中英

Socket.io和Ajax请求到php页面

[英]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。

但是当然有一些缺点

  • 性能开销
  • 建筑更复杂
  • 您现在可以使用两种语言,而不是仅使用一种语言(尽管javascript和PHP经常一起使用,以至于我认为在这种情况下这确实不是问题)

因此,您需要问自己,您的问题是否确实需要该解决方案。 但在很多情况下,答案可能是肯定的。 只是不要忘记保持简单和愚蠢的优点(KISS原则)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM