在Scala中调用WebSocket中的方法

时间:2016-07-02 07:20:42

标签: 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中工作。

修改:它给了我错误:'=>' expected, ')' found

1 个答案:

答案 0 :(得分:1)

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

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

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

def anotherControllerAction = objectName.socket

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

您可能希望更详细地描述您实际想要实现的目标