如何用runRoute组成actor接收的路由?

时间:2013-09-22 11:51:46

标签: scala akka actor spray

我需要向spray.routing.HttpService添加一些自定义系统消息处理。我需要按如下方式链接receive方法:

def receive = {
 case ...my messages here
 case _ => ...call httpReceive below
}

def httpReceive = runRoute...

如何组织这个?

1 个答案:

答案 0 :(得分:3)

在Spray中runRoute将您的路径结构转换为Akka的Receive,这是PartialFunction[Any, Unit]的类型别名。因此,如果您有一些处理自己的消息的方法和一些路线,您可以使用orElse组成它们:

def httpReceive: Receive = runRoute(...)
def handle: Receive = ...

def receive = handle orElse httpReceive

现在,如果您的消息将使用handle方法处理,然后,如果是请求,则会执行此处理请求