ฉันกำลังพยายามเผยแพร่ข้อมูลบางอย่างไปยังเซิร์ฟเวอร์โดยใช้โหนด Pubsub น่าเสียดายที่ฉันไม่สามารถเรียกข้อมูลโหนดที่เผยแพร่ก่อนหน้านี้ได้ ซึ่งคล้ายกับปัญหาในลิงก์ต่อไปนี้มาก: http://community.igniterealtime.org/message/199690#199690
กล่าวให้เจาะจงคือข้อมูลโค้ดดังต่อไปนี้:
try {
LeafNode node = mPubsub.getPEPNode(USEINFONODE,mFrom);
if(null != node){
List<Item> items = node.getItems();
Log.i("items",items.toString());
}
} catch (XMPPException e) {
Log.e("userInfoExtension","error : and the error is " + e.toString());
}
และข้อผิดพลาดเอาต์พุตไม่มีการตอบกลับจากเซิร์ฟเวอร์
ผลลัพธ์ของการดีบักจะเป็นดังนี้:
<iq id="B9tI0-4" to="pubsub.mymachine" type="get"><query xmlns="http://jabber.org/protocol/disco#info" node="theNode"></query></iq>
<iq id="B9tI0-5" to="pubsub.mymachine" type="get"><pubsub xmlns="http://jabber.org/protocol/pubsub"><items node='theNode'/></pubsub></iq>
อย่างไรก็ตาม ตามลิงค์ที่กล่าวข้างต้น iq stanza ที่คาดหวังจะเป็นดังนี้:
<iq type='get'
from='notifyserver@mymachine'
to='pubsub.mymachine'
id='items1'>
<query xmlns='http://jabber.org/protocol/disco#items'
node='theNode'/>
</iq>
มันแสดงว่าฉันพลาดฟิลด์ from ใน iq stanza ฉันสงสัยว่าฉันจะใส่ from ='client@server' ลงใน iq stanza ได้อย่างไร ฉันได้ลองใช้ไลบรารี asmack แล้วรวมถึง: asmack-android-7.jar , asmack-android-7-beem.jar asmack-android-16-beem.jar ทั้งหมดล้มเหลว
ใครสามารถช่วยเรื่องนี้ได้บ้าง? ขอบคุณมาก ๆ.
ฉันพบว่ามันเกี่ยวข้องกับการรับแพ็กเก็ต จริงๆ แล้ว ฉันได้รับแพ็กเก็ตที่ต้องการแล้ว ปัญหาคือแพ็กเก็ตนั้นอาจไม่สามารถประมวลผลได้ด้วยการตีในที่ใดที่หนึ่ง และมันจะไม่มีการตอบกลับจากข้อยกเว้นของเซิร์ฟเวอร์ ดังนั้นฉันคิดว่าปัญหาจริงๆ คือการไม่ได้รับแพ็กเก็ตที่เข้ามาอย่างถูกต้อง ในคำถามอื่นของฉันก็เช่นกัน:
http://stackoverflow.com/questions/14357707/how-to-send-and-listen-to-custom-xmpp-presence-packet-with-asmack-the-library