Akka 在Spray.io应用程序中传递变量

Akka 在Spray.io应用程序中传递变量,akka,spray,Akka,Spray,我正在使用Spray.io构建一个web服务,它位于使用Akka构建的核心应用程序之上 当我在中接收到请求时,它将由一个喷洒路由进行处理,该路由将依次将请求发送(使用tell)给一个参与者,该参与者处理请求并使用请求上下文返回响应 我在初始路由中对用户进行身份验证和授权,此身份验证/授权返回一个包含用户数据的用户对象 我需要能够在不同点访问核心Akka应用程序中的这个用户对象。我不想在发送给参与者的每个消息(case类)上都将其作为参数传递,因为这看起来很混乱,有时我会将其传递给参与者,以便将其

我正在使用Spray.io构建一个web服务,它位于使用Akka构建的核心应用程序之上

当我在中接收到请求时,它将由一个喷洒路由进行处理,该路由将依次将请求发送(使用tell)给一个参与者,该参与者处理请求并使用请求上下文返回响应

我在初始路由中对用户进行身份验证和授权,此身份验证/授权返回一个包含用户数据的用户对象

我需要能够在不同点访问核心Akka应用程序中的这个用户对象。我不想在发送给参与者的每个消息(case类)上都将其作为参数传递,因为这看起来很混乱,有时我会将其传递给参与者,以便将其传递给另一个参与者。是否有更好的/推荐的方法将此对象提供给系统中的其他参与者?它是否可以附加到请求上下文本身,或者这是一种糟糕的做法


谢谢

如果您试图做的是避免在创建案例类实例时必须传递身份验证信息的样板文件,则可以向它们添加隐式参数列表:

scala> implicit val i = 1
i: Int = 1

scala> case class X(s: String)(implicit val y: Int)
defined class X

scala> val x = X("foo")
x: X = X(foo)

scala> x.y
res4: Int = 1

您仍在为每条消息传递身份验证信息,并且无法在第二个参数列表上使用模式匹配,但根据您试图完成的操作,它可能会起作用。

akka广播是您想要的吗@ThiagoPereira更多的是将附加元数据与message@ThiagoPereira-它可能会工作,但也不太像是正确的方式-向所有人广播。。。您广播的消息是否可以是一个变量,例如case类??