发送和接收 IQ ASMACK Android XMPP

Posted

技术标签:

【中文标题】发送和接收 IQ ASMACK Android XMPP【英文标题】:Send and Receive IQ ASMACK Android XMPP 【发布时间】:2014-03-10 09:59:14 【问题描述】:

我是 XMPP 协议的新手,我试图在 XMPP android 中找到发送和接收 IQ 数据包的好例子,但我失败了,我尝试使用以下代码块但没有帮助。

代码:

final IQ iq = new IQ() 
    public String getChildElementXML()  
    return "<iq type='get' from='9f30dacb@web.vlivetech.com/9f30dacb' id='1'> <query xmlns='http://jabber.org/protocol/disco#info'/></iq>"; // here is your query
    //"<iq type='get' from='9f30dacb@web.vlivetech.com/9f30dacb' id='1'> <query xmlns='http://jabber.org/protocol/disco#info'/></iq>";
     ;
    // set the type
iq.setType(IQ.Type.GET);
// send the request
connection.sendPacket(iq);

我尝试使用此代码,但它没有向服务器发送任何消息。有人可以帮我写一段正确的代码吗?这样我就可以将我的 IQ 发送到服务器并接收响应

【问题讨论】:

Sending and Receiving Custom IQ XMPP ANDROID ASMACK 的可能重复项 【参考方案1】:

还没有测试过,但是试试

    IQ iq = new IQ();
    iq.setTo("destination@server");
    iq.setFrom("9f30dacb@web.vlivetech.com/9f30dacb");
    iq.setType(IQ.Type.GET);        
    iq.setPacketID("1");
    connection.sendPacket(iq);

【讨论】:

发送基本消息包怎么样,这样行吗?只是为了确保服务器是否已启动并且用户是否已连接 一个简单的消息包正在工作,但我无法发送 IQ。我想有语法问题或一些我不知道的逻辑错误【参考方案2】:

我认为你应该使用正确的目的地地址,包括来自目的地的资源,就像这个例子

iq.setTo("destination@dominio_destination.com/recurso_destination");

现在你可以发送数据包了:

connection.sendPacket(iq);

【讨论】:

@HassaanRabbani- 如何?

以上是关于发送和接收 IQ ASMACK Android XMPP的主要内容,如果未能解决你的问题,请参考以下文章

asmack + android + 聊天应用程序

asmak 数据包侦听器和自定义 IQProvider 未触发/调用

asmack - 接收自定义 XML 消息

Android aSmack - 如何为文件发送自定义消息扩展名?

如何访问在android asmack库中具有私有访问修饰符的访问IQTypeFilter?

Android aSmack XMPP 文件传输始终显示正在进行和状态 0