如何在jaxl xmpp ejabberd中发送额外的参数?

时间:2018-08-01 04:40:56

标签: php xmpp ejabberd jaxl

我想向xmpp服务器发送一些额外的参数。但无法在msg中获得这些额外的参数。 使用combinationhttps://github.com/jaxl/JAXL

我正在尝试使用jaxl.php中的这种方法。

public function send_msg($to,$body,$sender_id,$id,$xmpp_msg_attribute,$thread=null, $subject=null) {
    $msg = new XMPPMsg(
        array(
            'id'=>$id,
            'sender_id'=>$sender_id,
            'type'=>'normal', 
            'to'=>$to, 
            'from'=>$this->full_jid->to_string(),
            'attributes'=> 'extra information',
        ), 
        $body,
        $thread,
        $subject
    );
    $this->send($msg);
}

但是没有其他参数的输出发送:

<message xml:lang='en'
         to='7070707070@localhost.com'
         from='9696969696@localhost.com/jaxl#3090b93066351b9a90ebad79bb208745'
         id='5b6137010b0bc'
         xmlns='jabber:client'>
  <body><p>check me</p></body>
</message>

我没有找到属性sender_id。 我还尝试过更改属性-> attrs。

来源 https://www.ejabberd.im/

1 个答案:

答案 0 :(得分:0)

Message和Body元素已经由XMPP协议定义,因此您不能向其添加属性。

但是您可以添加新元素,例如,客户端可以发送新元素,并且将被目的地接收:

<message id='46:941386'
    xml:lang='es'
    type='chat'
    to='user2@localhost'>
  <body>hola</body>
  <xxx aa='asd' bb='qwe'/>
</message>