2013-02-04 15 views
9

Próbuję wykonać bardzo prosty dowód na to, że używam webowych gniazd Play 2.0.Podstawowa gra 2.0 Nie znaleziono nagłówka żądania WebSocket

Oto co robię teraz:

  • Definiowanie websocket w moim kontrolera:
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) 
} 
  • dodać trasę w pliku moi trasy
GET  /wsrequest     controllers.Application.wsrequest 

  • Użyj następujących wewnątrz javascript w moim index.scala.html:

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

Jednak gdy próbuję skompilować i to pojawia się błąd:


[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 


Czy brakuje mi kroku? Czy też popełniłem błąd w tym, co zrobiłem powyżej?

Odpowiedz

15

Szablon musi niejawny żądania nagłówek tak:

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

Jednym z bardziej ogólna uwaga: Upewnij się, że nie przypisanie „Request” w sposób nie zamierzony niejawnie przed użyciem. To mnie zaskoczyło i zaowocowało tym samym "Nie można znaleźć nagłówka żądania HTTP tutaj". –

Powiązane problemy