如何使用 JAXL PHP 库 IQ Query Action Protocol XMPP

Posted

技术标签:

【中文标题】如何使用 JAXL PHP 库 IQ Query Action Protocol XMPP【英文标题】:How to IQ Query Action Protocol XMPP with JAXL PHP library 【发布时间】:2014-04-23 16:02:11 【问题描述】:

我想向 xmpp 发送一个 iq 查询,并需要一个来自 XMPP 的响应结果。例如:

<iq from='capulet.lit' to='juliet@capulet.lit/balcony' id='s2c1' type='get'>
  <ping xmlns='urn:xmpp:ping'/>
</iq>

但是我在http://jaxl.readthedocs.org/en/latest/users/xmpp_extensions.html 中找到了所有文档 并且找不到这样做的方法。所以希望有人能帮助我。谢谢

【问题讨论】:

【参考方案1】:

首先,他们的文档几乎完全不存在。提交错误,或者更好的是,向他们发送拉取请求。

特别是对于 ping:

$client->require_xep(array(
    '0199'  // XMPP Ping
));

如果您想编写自己的协议,请查看他们的 XEP-0199 implementation 示例:

public function get_ping_pkt() 
    $attrs = array(
        'type'=>'get',
        'from'=>$this->jaxl->full_jid->to_string(),
        'to'=>$this->jaxl->full_jid->domain
    );

    return $this->jaxl->get_iq_pkt(
        $attrs,
        new JAXLXml('ping', NS_XMPP_PING)
    );

【讨论】:

以上是关于如何使用 JAXL PHP 库 IQ Query Action Protocol XMPP的主要内容,如果未能解决你的问题,请参考以下文章

强制使用 JAXL/XMPPHP 制作的聊天机器人在断开连接时重新连接

无法使用 jaxl xmpp 框架进行连接

JAXL 异常:此流不支持 SSL/加密

发送消息回调后的 jaxl

基于 JAXL 的聊天客户端。需要帮助连接到 Gtalk 或其他服务器以进行测试

JAXL 3. 关闭