微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

scala – Basic Play 2.0找不到WebSocket请求标头

我正在尝试使用Play 2.0 websockets做一个非常简单的概念验证.

这是我现在在做什么:

>在我的控制器中定义WebSocket:

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)
}

>在我的路由文件添加路由

GET     /wsrequest                  controllers.Application.wsrequest

>在我的index.scala.html中的javascript中使用以下内容

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

但是,当我尝试编译这个我收到一个错误

[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

我错过了一步吗?还是我以前做过的错误

解决方法

您的模板需要一个隐式请求标头,如下所示:

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

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

相关推荐