所以我現在有一個應用程序獨立播放的這可能需要在其執行很長一段時間。播放2.0 - 將執行的當前狀態
我想用一個用戶界面在它上面使用Play來調用應用程序,並在應用程序中向用戶顯示一些執行細節。我希望頁面在執行過程中自動更新,例如,如果應用程序中的變量遞增,則會反映在頁面上。
我不確定從哪裏開始 - 我是否需要將應用程序拆分爲模型+控制器?或者我只需要在控制器中有代碼來實例化已經編碼的類並調用我需要的方法?
怎麼樣在頁面上不斷顯示執行狀態?
任何資源,我應該知道/看?代碼示例?
感謝
所以我現在有一個應用程序獨立播放的這可能需要在其執行很長一段時間。播放2.0 - 將執行的當前狀態
我想用一個用戶界面在它上面使用Play來調用應用程序,並在應用程序中向用戶顯示一些執行細節。我希望頁面在執行過程中自動更新,例如,如果應用程序中的變量遞增,則會反映在頁面上。
我不確定從哪裏開始 - 我是否需要將應用程序拆分爲模型+控制器?或者我只需要在控制器中有代碼來實例化已經編碼的類並調用我需要的方法?
怎麼樣在頁面上不斷顯示執行狀態?
任何資源,我應該知道/看?代碼示例?
感謝
您可能已經這樣做了,但一個好的出發點是創建使用play new
命令骨架Play應用程序,同時參考了creating a new application部分。您將有「意見」(HTML模板頁面)和一個控制器(在Application.scala
)。你可以添加更多的控制器,但是因爲你只需要一個單獨的頁面就足夠了。
您可以將您的應用程序(如果它是JVM應用程序)中的jar添加到Play應用程序的lib目錄中。從這樣的:「還是我只需要有代碼在控制器實例我已經編碼類和調用我需要的方法?」聽起來你很高興在Jetty + Play服務器上運行你的應用程序。查看Global對象,以便在進程啓動時啓動您的應用程序。
查看關於comet sockets的部分,用於從Play應用程序向瀏覽器發送更新。您需要在網頁上添加一些Javascript。
你想讓這個應用程序在遊戲外運行,也許在另一臺服務器上運行嗎?你可以修改應用程序,還是第三方軟件?
如果是這樣,您必須有一些方法來在您的播放前端和您的應用程序之間來回發送數據。您可以讓您的應用程序公開一個websocket,然後您的播放前端和您的應用程序可以相互之間來回推送數據。然後你可以讓你的客戶端頁面有一個websocket打開給你播放前端,然後播放可以將更新推送到客戶端。如果你的應用程序不支持websocket,你也可以在你的前端公開一些URL來讓應用程序POST。然後,您可以使用某種消息總線或數據庫機制(RabbitMQ,redis,Mongo capped collection,甚至只是一個共享的Queue對象),以便前端websocket可以獲取這些更新並將其發送給客戶端。