await och disconnect är tydligen static och inte åtkomliga från Scala. De ska bli tillgängliga från Scala också från version 1.0.
Frågan#1
Jag har försökt köra ett litet exempel med WebSockets i Scala och Play Framework. Men jag får felet: "Error raised is : not found: value await". Scala kompilatorn verkar inte veta vilken metod "await()" och "disconnect()" som ska användas. De finns i WebSocketController som jag ärver.
Här är min kod:
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!")
}
}
}
}
Jag misstänker att det kan vara nåt som är inkompatibelt mellan Java och Scala, men jag kan inte Scala så jätte bra. Nån som har nåt förslag?