如何使用Play Framework在Scala中使用WebSockets?

如何解决如何使用Play Framework在Scala中使用WebSockets?

| 我想在Scala和Play框架中使用WebSockets。但是我无法使Echo服务器示例正常工作。 import0ѭ和
disconnect()
应导入什么? 我得到的错误
Error raised is : not found: value await
。我使用下面的代码
package controllers
import play._
import play.mvc._
import play.mvc.Http.WebSocketEvent
import play.mvc.Http.WebSocketFrame
import play.mvc.Http.WebSocketClose
import play.mvc.WebSocketController

object MySocket extends WebSocketController {
    def echo = {
        while(Http.Inbound.current().isopen()) {

            val e : WebSocketEvent = 
        await(Http.Inbound.current().nextEvent()).asInstanceOf[WebSocketEvent]

            if(e.isinstanceOf[WebSocketFrame]) {
                val frame : WebSocketFrame = e.asInstanceOf[WebSocketFrame]

                if(!frame.isBinary) {
                    if(frame.textData.equals(\"quit\")) {
                        Http.Outbound.current().send(\"Bye!\");
                        disconnect();
                    } else {
                        Http.Outbound.current().send(\"Echo: \" + frame.textData)
                    }
                }
            }
            if(e.isinstanceOf[WebSocketClose]) {
                Logger.info(\"Socket closed!\")
            }
        }
    }
}
这是终端中的编译错误
Compiling:
    /Users/jonas/play-1.2.2RC1/jonassite/app/MySocket.scala
/Users/jonas/play-1.2.2RC1/jonassite/app/MySocket.scala:14: not found: value await
            val e : WebSocketEvent = await(Http.Inbound.current().nextEvent()).asInstanceOf[WebSocketEvent]
                                     ^
/Users/jonas/play-1.2.2RC1/jonassite/app/MySocket.scala:20: not found: value disconnect
                        disconnect();
                        ^
two errors found
Compiling:
    /Users/jonas/play-1.2.2RC1/jonassite/app/MySocket.scala
/Users/jonas/play-1.2.2RC1/jonassite/app/MySocket.scala:14: not found: value await
            val e : WebSocketEvent = await(Http.Inbound.current().nextEvent()).asInstanceOf[WebSocketEvent]
                                     ^
/Users/jonas/play-1.2.2RC1/jonassite/app/MySocket.scala:20: not found: value disconnect
                        disconnect();
                        ^
two errors found
12:52:57,049 ERROR ~ 

@66lce6kp8
Internal Server Error (500) for request GET /handshake

Compilation error (In /app/MySocket.scala around line 14)
The file /app/MySocket.scala Could not be compiled. Error raised is : not found: value await

play.exceptions.CompilationException: not found: value await
    at play.scalasupport.ScalaPlugin.compilationException(ScalaPlugin.scala:129)
    at play.scalasupport.ScalaPlugin.detectClassesChange(ScalaPlugin.scala:115)
    at play.plugins.PluginCollection.detectClassesChange(PluginCollection.java:358)
    at play.Play.detectChanges(Play.java:591)
    at play.Invoker$Invocation.init(Invoker.java:186)
    at Invocation.HTTP Request(Play!)
    

解决方法

        
await()
disconnect()
WebSocketController
中可用的方法。但是,这些当前仅在Java版本中可用,而在Scala中不可用。有关更多信息,请参见此处的播放组。 它应该在scala插件的1.0版本中可用,但是现在如果您要使用aysnc功能(等待等),则必须使用Java,或者看看其中一个Play的Java包装器。用户得到发展。     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?