XMPP ผ่าน HTTP หรือผ่านซ็อกเก็ต

ฉันสงสัยว่าฉันต้องใช้ไคลเอ็นต์ XMPP หรือไม่ การเชื่อมต่อใดเป็นวิธีที่ดีที่สุด โดยใช้ซ็อกเก็ตหรือ BOSH ข้อดีข้อเสียคืออะไร? ฉันคิดว่าทั้งสองสามารถรองรับไคลเอนต์ให้อยู่บนเครือข่ายที่แตกต่างจากเซิร์ฟเวอร์ได้หรือไม่


person Jen    schedule 06.07.2011    source แหล่งที่มา


คำตอบ (2)


ฉันคิดว่าความแตกต่างที่ใหญ่ที่สุดระหว่างซ็อกเก็ตและ bosh คือ bosh ใช้ HTTP ซึ่ง ไร้สถานะ(ปิดการเชื่อมต่อ) เทียบกับซ็อกเก็ต นั่นหมายความว่าคุณสามารถเชื่อมต่อกับ XMPP ได้จากภายในเบราว์เซอร์เมื่อใช้ BOSH ฉันไม่เข้าใจว่าทำไมคุณถึงต้องการสร้างไคลเอ็นต์ BOSH เพราะ strophe.js เป็น bosh ที่ดีมาก ลูกค้า. นอกจากนี้ยังมีการติดตั้งซ็อกเก็ตในเกือบทุกภาษาที่มีอยู่ นั่นเป็นความคิดที่ดีเกี่ยวกับ XMPP ถ้าคุณถามฉัน

person Alfred    schedule 07.07.2011

นี่ไม่ใช่รายการข้อดีและข้อเสียทั้งหมด แต่เป็นรายการที่ฉันพบในขณะที่พยายามใช้การเชื่อมต่อ Openfire ที่เข้ารหัสข้ามเครือข่าย

ซ็อกเก็ต One Pro ของการเชื่อมต่อซ็อกเก็ต: รองรับการเข้ารหัส TLS อัตโนมัติ

การเชื่อมต่อซ็อกเก็ตที่เป็นไปได้ประการหนึ่ง: ฉันได้เรียนรู้เมื่อเร็ว ๆ นี้ว่าการใช้การเชื่อมต่อซ็อกเก็ตอาจเป็นปัญหาได้หากเซิร์ฟเวอร์ Openfire อยู่บนเครือข่ายที่แตกต่างจากไคลเอนต์ที่เชื่อมต่อกับเซิร์ฟเวอร์นั้น ซึ่งในกรณีนี้ความสามารถในการเชื่อมต่อกับเซิร์ฟเวอร์สามารถอยู่ที่ ความเมตตาของไฟร์วอลล์เครือข่ายที่เชื่อมต่อและความสามารถในการเชื่อมต่อผ่านพอร์ตซ็อกเก็ต 5222 มาตรฐาน

ผูก HTTP

ข้อดีของ Http-Bind: สามารถบรรเทาปัญหาการเชื่อมต่อระหว่างเครือข่ายข้างต้นได้โดยใช้พอร์ต Http มาตรฐาน

ข้อเสียอย่างหนึ่งของ Http-Bind: ดูเหมือนจะไม่รองรับการเข้ารหัส TLS อัตโนมัติและอาศัยมาตรฐาน 'SSL เก่า' สำหรับการสื่อสารที่เข้ารหัสแทน ซึ่งไลบรารี XMPP จำนวนมากไม่รองรับ

person pat8719    schedule 08.07.2011