Актер должен B изменить ответное сообщение между C и A ?
Если нет, актер B должен использовать B forward "msg"
вместо B ! "msg"
. Это сохранит информацию об отправителе. Когда C использует ответ, ответ автоматически отправляется на A без прохождения B:
A sends message to B (b ! "msg")
B forward the message to C (c forward "msg")
C replies to A (self.reply ! "msg3")
Если да, найдите отправителя ActorRef
и передайте его вместе с отправителем сообщения.
Например, используя простой кортеж:
A sends message to B (b ! "msg1")
B sends message to C, with the sender reference (c ! ("msg2",self.sender) )
C replies to B adding the reference it received (self.reply ! ("msg3",ref) )
B replies to A ( ref ! "msg4" )
Здесь я использовал кортеж, но если у вас более длинная цепь, пропустите List[ActorRef]
. При переходе вперёд вы должны указать отправителей. И когда вы возвращаетесь, вы отвечаете на заголовок списка и пропускаете хвост списка вдоль ответа.
Редактировать: Принимая во внимание комментарий Виктора.