2013-02-04 7 views
9

Ich versuche, eine sehr einfache Proof of Concept mit Play 2.0 WebSockets zu tun. HierGrundlegende Play 2.0 WebSocket Anfrage Header nicht gefunden

ist, was ich jetzt tue:

  • Definition der WebSocket in meinem Controller:
def wsrequest = WebSocket.using[String] { request => 

    // Send a single 'Hello!' message 
    val out = Enumerator("Hello!") 

// Just consume and ignore the input 
    val in = Iteratee.consume[String]() 

    // tie the in and out values to each other 
    (in, out) 
} 
  • Fügen Sie die Route in meine Routen Datei
GET  /wsrequest     controllers.Application.wsrequest 

  • Verwenden Sie das folgende innerhalb des Javascript in meinem index.scala.html:

var sock = new WS("@routes.Application.wsrequest().webSocketURL()") 

aber wenn ich versuche, und kompilieren diese bekomme ich einen Fehler:


[info] Compiling 5 Scala sources and 1 Java source to target\scala-2.9.1\classes... 
[error] target\scala-2.9.1\src_managed\main\views\html\index.template.scala:32: Cannot find any HTTP Request Header here 
[error] Error occurred in an application involving default arguments. 
[error]    var sock = new WS(""""),_display_(Seq[Any](/*11.33*/routes/*11.39*/.Application.wsrequest().webSocketURL())),format.raw/*11.78*/("""") 
[error]                             ^
[error] one error found 


Vermisse ich einen Schritt? Oder habe ich einen Fehler gemacht in dem, was ich oben getan habe?

Antwort

15

Ihre Vorlage muss eine implizite Request-Header, wie folgt aus:

@(message: String)(implicit request: RequestHeader) 
+0

Noch eine allgemeine Anmerkung: Stellen Sie sicher, dass Sie nicht „Bitte“ Sie neu zuweisen in eine nicht dazu bestimmt, bevor implizit es zu benutzen. Dies hat mich erwischt und führte zu der gleichen Meldung "Hier kann keine HTTP-Anfrage-Header gefunden werden". –

Verwandte Themen