2013-09-22 2 views
1

Мне нужно добавить несколько обработанных системных сообщений в spray.routing.HttpService. Мне нужно цепи receive методы следующим образом:Как составить маршруты в получении актера с помощью runRoute?

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

def httpReceive = runRoute... 

Как организовать это?

ответ

3

in Spray runRoute преобразует структуру вашего маршрута в Receive Akka, который является псевдонимом типа для PartialFunction[Any, Unit]. Так что если у вас есть какой-то метод, который обрабатывает свои собственные сообщения и некоторые пути вы можете просто составить их orElse:

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

def receive = handle orElse httpReceive 

Теперь, если ваши сообщения будут обрабатываться с handle способом, а затем, если это была просьба, спрей будет обрабатывать этот запрос