小编Avi*_*iel的帖子

Play Framework - 是否可以在Play中结合使用Promise和WebSocket?

我正在使用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)

java websocket promise playframework playframework-2.0

8
推荐指数
1
解决办法
810
查看次数