2014-03-13 67 views
7

我想實時監測用戶在comments表中輸入的數據。 我有一個Apache服務器上運行,並假設在端口1337是否可以將Nodejs與CakePHp集成?

節點服務器我會怎麼做,每次有人保存新的數據,例如返回我的錶行的總數comment並顯示它在view

也許方法是使$this->Comment->save($this->request->data);使用不同的端口使用Httpsockect

+0

我不認爲nodejs會是你的任務的一個很好的解決方案,它有點太多安裝nodejs,只是使用websocket進行評論。longpolling更適合這種類型的任務,你可以用php來實現這一點,而不需要太多的努力。 – Gntem

+0

謝謝,我在尋找什麼來實現這個目標? –

回答

9

是的,這是可能的。

你有解決這個的多種方式,讓我給你我的想法

您可以簡單地使用長輪詢和不使用Node.js的根本。如果在那裏沒有太多的交通流量,這是一個合適的解決方案,否則你會有一段糟糕的時間。

您可以使用websockets,並且完全不使用Node.js。 Here you have a basic guide about websockets and PHP。雖然,我幾乎可以肯定你不能創建「房間」,也就是發送通知以獲得特定的評論。您可以使用Ratchet。這是一個更復雜的庫來處理websockets並支持房間。最後,如果你想充分利用Node.js和CakePHP,我建議以watching this talk given on Cakefest 2012開頭,這正好描述你的場景。

看過之後,您可能想了解一下Socket.io。這是一個更復雜的解決方案,但這正是我在集成CakePHP和Node.js創建實時應用程序時所使用的解決方案。

此處的策略是讓用戶在訪問/ article/view/123時加入room,假設房間名稱爲articleID,則socket.io將監聽此房間中發生的事件。

您將擁有一個CakePHP方法來處理保存。然後,當用戶提交表單時,你不直接調用Cake動作,你使用socket.io來分派一個事件,然後在你將事件傳遞給服務器(Node.js)並且nodejs將調用你的cakephp函數保存數據。當Nodejs從CakePHP接收到確認消息後,您將廣播一個事件(使用socket.io),此事件將讓所有連接到該房間的用戶知道已經發出了評論。

+0

Thaaaanksss!你可以發佈你的答案的最後一個小例子嗎?調用socket.io和sockect.io調用我的函數? –

+0

我會,可能會在博客文章中涉及很多代碼。 –

+0

博客網址pls ??? = D –

1

你基本上可以選擇Websockets和長輪詢。

決定要使用並開始實施你的使用情況,其技術。考慮一下,Websockets或多或少都是新的。根據您的要求,您可能無法使用Websockets,因爲您可能必須支持蹩腳的瀏覽器。 See this page

+0

棘輪似乎支持IE8 + – Alvaro

相關問題