2013-01-09 45 views
1

我寫了一個PHP類,允許用戶與FTP服務器交互AJAX或類似連接,改變目錄,上傳等什麼,我想接下來要做的是給什麼樣的實時更新正在服務器上發生,即。如果他們改變了目錄,給他們發一條消息說目錄改變了,你現在在{pwd}。PHP FTP和

這甚至可能嗎?我對我的PHP課很滿意,但我不知道如何給它提供實時性。

+1

似乎有點毫無意義,因爲http是一個無狀態的「每次關閉連接」協議,而ftp有點需要連接保持打開狀態。你可以用PHP來完成,但你必須保持連接在服務器上打開,並以某種方式將它們與用戶相關聯,或者登錄到ftp服務器,並在客戶端發出新的請求時重新創建cd命令。 –

回答

0

來模擬實時更新,你可以寫檢查的時間間隔在服務器上改變一個簡單的JavaScript代碼。像Ping一樣,只要返回新的存在或不存在。 如果服務器返回true,則可以獲取所有消息。

其他方法,越來越多的使用websockets。 http://socket.io/是一個有用的例子。它是基於node.js的

1

你所描述主要是前端工程問題。

通常在基於瀏覽器的用戶界面,這幾樣「實時」的情況進行了仿真與在使用JS固定的時間間隔向服務器發出Ajax調用。您可以設置端點來返回ping的「答案」表示,並用相關信息更新您的前端顯示。這規避了HTTP協議的無狀態性質。

我建議在這個「ping命令」的方式進行,他們沒有收到新的數據也更新其在事件間隔任何電話。當連續幾次響應顯示沒有新信息時,檢查次數會更少。每次沒有新的報告時,您可以增加間隔。

有更先進的實現時,需要真正的「實時」,你可以google「HTTP推送」的,直到新的數據被髮送如何掛HTTP響應的更多信息。不過,我認爲你的情況並不需要這麼做。

+0

我還會從我自己的經驗中補充一點,如果網站會有非常多的流量,那麼Sico應至少嘗試使用socket.IO或類似的服務。在從間隔更新到socket.IO數據的個人切換之後,我永遠不會再回去,甚至不推薦替代方法。我也可以說,在一段時間(幾個小時)內使用這種間隔方法,網站的響應速度肯定會降低,服務器會變得更緊張。 (以我個人的經驗) –

+0

@DylanCrossPops爲SocketIO ...剛剛離開原來的帖子的語氣,我覺得他想要一個概念驗證。我絕對不喜歡這種長時間的呼叫。我們在一個我工作的應用程序中遇到了類似的情況,最終轉向使用python中的Twisted實現的消息隊列。按照我的經驗,這些類型的項目通常是讓某人從PHP「畢業」以獲得更好的網絡接口的類型。 – DeaconDesperado