webForumDet fria alternativet

Problem med att använda WebSockets i Scala och Play Framework

Webbutveckling

1 svar · 377 visningar · startad av erciz

Medlem sedan maj 20011 826 inlägg
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?

Medlem sedan maj 20011 826 inlägg
#2

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.

255 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)