簡體   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