如果有人能帮助我如何使用ASMACK接收iq数据包,我将非常感激,我发送原始iq数据包但无法接收它,
我在建立连接之前以编程方式注册了iq数据包,但仍然没有得到响应,
pm.addIQProvider("vCard", "vcard-temp", new VCardProvider());
final IQ iq = new IQ() {
public String getChildElementXML() {
return "<iq from='test@XX.XX.XX.XX' id='v1' to='test@XX.XX.XX.XX' type='get'><vCard xmlns='vcard-temp'/></iq>";
}
};
iq.setType(IQ.Type.GET);
connection.sendPacket(iq);
connection.addPacketListener(new MyPacketListener(),new PacketTypeFilter(IQ.class));
答案 0 :(得分:0)
首先,尝试在发送数据包之前设置数据包侦听器。它是一个异步协议,可能在设置侦听器之前返回响应。
然后尝试设置-DsmackDebugEnabled = true以检查是否有对您的发送的实际响应。
答案 1 :(得分:0)
您可以实现Packet Listener方法,进程Packet(Packet packet)方法将为您提供传入的数据包。这是一个堆栈线程,解释了相同的问题aSmack - Packet to XML using Packet Listener outputs nullable elements