当前位置: 首页 > 面试题库 >

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

时浩波
2023-03-14
问题内容

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

我试过了:

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

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

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


问题答案:

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
    }
  }
}


 类似资料:
  • 问题内容: 可以说我有一个MultiIndex系列: 我想应用一个使用行索引的函数: 我该怎么做?进行此类操作的推荐方法是什么?我希望获得一个新的Series,并将此函数所产生的值应用于每行并具有相同的MultiIndex。 问题答案: 我认为无法访问该索引;它将每行视为一个numpy对象,而不是一个Series,如您所见: 要解决此限制,请将索引提升为列,应用函数,然后使用原始索引重新创建Ser

  • 我有四张桌子, 道具,上市,优惠,联系 道具有很多列表,列表属于道具 公共函数列表(){返回$this- 报价属于挂牌, 然后通过“报价”联系人表提供以下联系人 我的问题是,如何访问买家()? 像$props之类的东西- 在道具模型中,我所做的是

  • 问题内容: 因此,我对“ setter”和“ getter”方法以及它们的有用与否有疑问。 假设我只是写了一个非常基本的程序,如下所示: 然后,假设我编写了另一个使用此“ Account”类的类,如下所示: 等等等 在编写时,我正在“ Account”类中更改变量“ name”的值。我可以按照自己喜欢的方式随意编写多次代码。但是,引起我注意的是,更好的做法是将“ Account”类中的变量设为私有

  • 问题内容: 使用POI时,excel文档中的单元格和字体包含颜色信息,这些信息并不总是返回rgb值,并且通常仅提供索引值。必须对索引值进行对照以获取颜色。在HSSFWorkbook(xls)中,有一种方法可以用来获取调色板: 当访问XSSFWorkbook(xlsx)时,没有这种方法,实际上我在相关类的任何地方都找不到调色板信息。我能够从XSSFont和Cell中获得索引值,但是获取尽可能多的颜色

  • 问题内容: 第一。我知道关于如何访问jar文件中的图像已经存在各种主题。第二。我尝试了很多选择,但没有一个没有用。我当然知道在某个地方我犯了一个错误。您能帮助我了解我在做什么错吗? 因此,我有一个名为“ j”的原型项目,它仅包含一个Java类- 客户端。客户端尝试访问图像good.png。将所有文件打包到可执行jar文件后,客户端将无法访问文件。我在月食中工作,并使用蚂蚁。 com.pupcom.

  • 问题内容: 我有一个表格,我需要在其中获取每个类别的前n个最高金额的项目。 我期望的输出是前2个类别中的最高清单。 问题答案: 这应该为您工作。如果它不满足您的要求,请发回您需要的内容。您最初希望有25个,所以您只需将最后一个子句修改为 如果要从表中选择更多列,只需将它们添加到和“ GROUP BY”子句中。 仅当您要扩展“ 每个Category,foo,bar的TOP n ”时,才将这些列也添加