gpt4 book ai didi

ajax - SCALA Lift - Comet Actor 中的 S.param 访问

转载 作者:行者123 更新时间:2023-12-01 12:59:00 25 4
gpt4 key购买 nike

我正在尝试检索 CometActor 中的 url 参数以验证数据源是否与目的地匹配,例如,用户从房间 A 发送一条消息,该消息应仅在房间 A 而不是 B 中接收和显示或 C.

我试过:

S.param("message").openOr("") 

但是总是空的,这样可以吗?还是有另一种方法可以阻止 Comet 消息去往它们不应该去的地方?

在此先感谢您的帮助,非常感谢:)

最佳答案

CometActor 存在于 session 之外,因此无权访问(大部分) session 。解决方案是使用包含所需 session 数据的初始化消息来初始化 actor。有某种帮助程序(也许在 LiftRules 中)可以做到这一点。我正在打电话,凭内存记忆这件事,但希望这足以继续下去。

具体来说,您需要执行以下操作:

for (
session <- S.session
message <- S.param("message")
) {
session.setupComet("myCometActor", Some("unique name, if you want it"), message)
}

在你的 Boot.scala 中。

查看 LiftSession再多一点。我认为可能有一种方法可以连接到 LiftRules在 session 创建时调用相关代码...

更新:如果我们发送一个包含以下内容的案例类,您的 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
}
}
}

关于ajax - SCALA Lift - Comet Actor 中的 S.param 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7915259/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com