1

所以我目前有一个独立于 Play 的应用程序,它的执行可能需要很长时间。

我想使用 Play 在它上面放置一个 UI,可以调用应用程序,并向用户显示应用程序内部执行的一些细节。我希望页面在执行过程中自动更新,例如,如果应用程序中的变量增加,这将反映在页面上。

我不确定从哪里开始 - 我需要将应用程序拆分为模型 + 控制器吗?还是我只需要在控制器中有代码来实例化我已经编码的类并调用我需要的方法?

在页面上不断显示执行状态呢?

我应该了解/阅读的任何资源?代码示例?

谢谢

4

2 回答 2

0

你想让这个应用程序在游戏之外运行,也许在另一台服务器上?您可以修改应用程序,还是这是第 3 方软件?

如果是这样,您必须有某种方式在您的播放前端和您的应用程序之间来回发送数据。您可以让您的应用程序公开一个 websocket,然后您的播放前端和您的应用程序可以相互推送数据。然后,您可以让您的客户端页面打开一个 websocket 来播放前端,然后播放可以将更新推送到客户端。如果您的应用程序不支持 websocket,您还可以在前端公开一些 URL 以供应用程序 POST 到。然后,您可以使用某种消息总线或数据库机制(RabbitMQ、redis、Mongo capped collection,甚至只是一个共享队列对象),以便前端 websocket 可以获取这些更新并将它们发送到客户端。

于 2013-05-17T23:12:24.480 回答
0

您可能已经这样做了,但一个好的起点是使用play new命令创建一个框架 Play 应用程序,同时参考创建新应用程序部分。您将拥有“视图”(HTML 模板页面)和一个控制器(在 中Application.scala)。你可以添加更多的控制器,但是你只需要一个页面就足够了。

您可以将应用程序(如果是 JVM 应用程序)中的 jars 添加到 Play 应用程序的 lib 目录中。从这里:“或者我只需要在控制器中有代码来实例化我已经编码的类并调用我需要的方法?” 听起来您很乐意让您的应用程序在 Jetty + Play 服务器的进程中运行。查看Global对象以在进程启动时启动您的应用程序。

查看有关彗星套接字的部分,以将更新从 Play 应用程序发送到浏览器。您需要在网页中使用一些 Javascript。

于 2012-10-10T07:46:04.680 回答