我正在使用Play 2.0.1和Java.到目前为止,我已经使用Promise加载了一个显示数据库数据的页面.这是原始的控制器代码:
public static Result index() {
// Generate the page
final MainPage page = new MainPage();
Promise<MainPage> promiseMainPage = Akka.future(
new Callable<MainPage>() {
public MainPage call() throws Exception {
page.generate();
return page;
}
});
return async(promiseMainPage.map(new Function<MainPage, Result>() {
@Override
public Result apply(MainPage mainPage) throws Throwable {
return ok(views.html.index.render(mainPage));
}
}));
}
Run Code Online (Sandbox Code Playgroud)
这一切都很好; 承诺的页面确实发送到浏览器,而服务器不阻止数据库查询(执行page.generate())完成.但是,现在我想使用WebSocket来更新从数据库中检索到的新/修改信息的页面.所以我使用Chat示例来做到这一点(甚至简化,因为我只想使用传出通道:服务器到客户端).我在下面添加了以下内容index.scala.html:
<script type="text/javascript" charset="utf-8">
$(function() {
var WS = window['MozWebSocket'] ? MozWebSocket : WebSocket;
var socket = new WS("@(routes.Application.webSocket().webSocketURL(request))");
var receiveEvent = …Run Code Online (Sandbox Code Playgroud)