java - 在 Scala 中调用 WebSocket 中的方法

标签 java scala playframework akka

我是 scala、Play 框架和 Akka 的新手。我的函数定义为

def socket = WebSocket.accept[String, String] { request =>
    ActorFlow.actorRef(out => MyWebSocketActor.props(out))
  }

我想从其他类调用这个函数。我不清楚如何调用这个函数,因为我无法通过以下方式调用它

objectName.socket(implict req:RequestHeader)

我正在使用 Play 2.5.3 、Scala 2.11.7 和 Akka 2.4.7 。

编辑:它给了我错误:'=>'预期,')'找到

最佳答案

我仍然不确定这样做有什么好处,但我会尽力回答你的问题。

首先,这个 (objectName.socket(implict req:RequestHeader)) 不是您调用带有隐式参数的方法的方式(而且您在隐式中也有拼写错误)。

但是正如您已经正确指出的那样,您需要一个隐式的 RequestHeader,因此您只能在 Controller 的上下文中调用此方法。

def anotherControllerAction = objectName.socket

这基本上只是将 anotherControllerAction 指向套接字实现。然后您仍然需要将 anotherControllerAction 放入您的路由文件中。

您可能想更详细地描述您真正想要实现的目标

关于java - 在 Scala 中调用 WebSocket 中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38157611/

相关文章:

java - Java中的时间同步

java - Lombok 生成器不工作

scala - 按元组的第三个元素排序,然后按第一个元素分组并分配排名

scala - dotty/scala3 与 scala-native 和 scala-js 等技术的集成有多无缝?

database - 如何将数据库条目加载到我的 Scala 模板中?

javascript - Play Framework 解析错误。不支持的语法 : CONST

java - 当我需要使用两列时如何使用@oneToMany

java - 根据这段代码,如果返回的 Future<V> 被限制在实例中,FutureTask 如何被取消?

scala - 如何在 Spark 中创建一组 ngram?

java - Playframework - 分包 Controller 和路由问题