2012-07-22 41 views
0

我正在創建一個應用程序,並且是told,它最好使用我想要的Comet。直到現在我還沒有使用Comet的經驗,但經過一些研究後,我建立了CometD服務器。其他可用的服務器包括APE,但是它自上次修訂以來似乎有一段時間了,CometD的文檔要好得多。使用CometD來不斷觀察文件的變化

由於我缺乏經驗,我不知道從哪裏開始,並且文檔沒有涵蓋具體情況。

我希望服務器連續觀看.txt文件以進行更改,並在HTML頁面中顯示該文檔的當前內容。定期地,該文件會發生變化(大約每2或3分鐘),並且我希望在發生更改時將新文檔顯示給連接的客戶端。

我認爲這是可行的,我想它可以完全通過修改JS。我唯一的問題是......我如何開始?

回答

1

您可以使用JDK 7的文件監視器服務來監視文件更改,如official tutorial中所述。

您可以檢測到更改,您可以在頻道上廣播CometD消息,並且JavaScript客戶端可以偵聽該頻道上的消息。請參閱http://docs.cometd.org的第3.3.5.5節。

您可以選擇發送整個文件或增量,這取決於您的應用程序邏輯。總結一下,您需要服務器端的一些邏輯來監視文件更改,以及客戶端上接收文件更改並顯示它們的一些邏輯。

+0

感謝您的回答。如果不是讓服務器需要監視文件更改,服務器可能會被告知該文件剛剛更新。例如,我正在使用PHP中的函數更新文件。在那個函數中,我可以「推動」服務器來讀取新文件並將新版本推送給客戶端。那可行嗎? – dplanet 2012-07-22 20:25:28

+0

是的,這是可行的。通過使用CURL對特定URL執行請求,我知道那些「通知」CometD服務器的人(最後也是HTTP服務器)。映射到該URL的servlet可能觸發邏輯讀取文件並執行CometD推送。但是任何東西都可以工作:JMS通知,HTTP請求,文件監視等等。 – sbordet 2012-08-08 09:52:00