我需要向spray.routing.HttpService
添加一些自定义系统消息处理。我需要按如下方式链接receive
方法:
def receive = {
case ...my messages here
case _ => ...call httpReceive below
}
def httpReceive = runRoute...
如何组织这个?
答案 0 :(得分:3)
在Spray中runRoute
将您的路径结构转换为Akka的Receive
,这是PartialFunction[Any, Unit]
的类型别名。因此,如果您有一些处理自己的消息的方法和一些路线,您可以使用orElse
组成它们:
def httpReceive: Receive = runRoute(...)
def handle: Receive = ...
def receive = handle orElse httpReceive
现在,如果您的消息将使用handle
方法处理,然后,如果是请求,则会执行此处理请求