เคยใช้ SMACK library ในการทำงานครับ ต้องเขียนโปรแกรมคุยผ่านโปรโตคอล XMPP (ที่ใช้ใน GTalk)
ระหว่างหัดเขียนอย่างงงๆ ก็ใช้ feature IBB (In-Band Bytestream) เพื่อส่งไฟล์ครับ
ปรากฏว่าเจอปัญหาแปลกๆ เหมือน SMACK มันคุยกับ server คนอื่นไม่รู้เรื่อง เลยไปไล่ๆ อ่าน XEP (XMPP Extension Protocol) ปรากฏว่า น่าจะมีสักคนที่ implement ไม่ตรงตาม protocol
ก็ส่ง patch เข้าไป เขาก็รับครับ… ดีใจ 🙂
http://community.igniterealtime.org/message/234808
ผ่านไป 3 ปี, protocol มีการปรับปรุงแก้ไขนิยามที่คลุมเคลือ จาก
The base64-encoded data to be sent, prior to any wrapping in the element and IQ or message stanza, MUST NOT be larger than the ‘block-size’ determined in the bytestream negotiation.
เป็น
The data to be sent, prior to base64-encoding and prior to any wrapping in XML, MUST NOT be larger than the ‘block-size’ determined in the bytestream negotiation.
กลายเป็นว่า protocol โดนปรับให้ตรงกับ implementation ที่มีแพร่หลายครับ และ patch ก็โดน reverse แล้วครับ