Cometactor存在于会话之外,因此无权访问(大部分)会话。解决方案是使用包含所需会话数据的初始化消息来初始化参与者。也许在LiftRules中有某种帮助者可以做到这一点。我正在用手机打电话,并从记忆中重新叙述了这一点,但希望它能继续进行下去。
具体来说,您将要执行以下操作:
for ( session <- S.session message <- S.param("message")) { session.setupComet("myCometactor", Some("unique name, if you want it"), message)}在你的
Boot.scala。
查看
LiftSession更多。我认为可能有一种方法可以
LiftRules让创建会话时调用相关代码…
更新: 如果我们发送包含以下内容的案例类,这就是您的Cometactor的外观:
// ...session.setupComet( "myCometactor", Some("unique name, if you want it"), Message(message))// ...case class Message(text: String)class CometMessage extends Cometactor { override def lowPriority = { case Message(text) => { // do something here with the text, whether settings a SessionVar or even just a plain var } }}


