我如何在akka-camel消费者演员中获得真正的xmpp消息?

时间:2014-11-27 21:28:24

标签: xmpp apache-camel akka

我写了一个这样的演员:

import akka.actor.{Actor,Props,ActorLogging}
import akka.camel.{CamelMessage,Consumer}

class XmppConcumer(jid:JID) extends Actor
    with Consumer with ActorLogging {

    def endpointUri = s"xmpp://${jid.login}@${jid.host}/${jid.resource}?password=${jid.password}"

    def receive = {
        case msg:CamelMessage => ???
    }
}

但是CammelMessage只包含一个XMPP的message-stanza的主体(带有消息> body标签的字符串)和一些标准头文件;但我的消息节是使用一些标签和属性自定义的。如何获取真实节的数据?

1 个答案:

答案 0 :(得分:0)

akka-camel组件不允许您访问camel的邮件实例(org.apache.camel.Message) - 请参阅akka-camel来源 - ;然后我无法将它投射到org.apache.camel.component.xmpp.XmppMessage。在结果中,我无法访问smack的消息实例。

骆驼的消息不是不可改变的;我认为正因为如此,akka的CamelMessage没有任何参考骆驼的消息实例。