บทเรียนที่ดีเกี่ยวกับ XMPP? [ปิด]


110

ฉันได้รับการมองที่บางส่วนมาเปิดเซิร์ฟเวอร์ XMPP และฉันคุ้นเคยกับเว็บอย่างเป็นทางการhttp://xmpp.org/ แต่จนถึงขณะนี้ฉันไม่พบอะไรเลยระหว่าง " The Extensible Messaging and Presence Protocol (XMPP) เป็นเทคโนโลยีแบบเปิดสำหรับการสื่อสารแบบเรียลไทม์ " และรายการข้อกำหนดของ XEP ตัวอย่างเช่นบทความที่อธิบายถึงพื้นฐานและคำศัพท์เช่น stanzas, IQ, การแสดงตน ฯลฯ ฯลฯ แม้แต่หน้าWikipedia ก็พลาดสิ่งนี้ไปไม่น่าแปลกใจเลยที่โครงการโอเพ่นซอร์สจะถือว่าคุณรู้สิ่งเหล่านี้ก่อนที่จะเริ่มขุดลงไปในโค้ด

มีชุดบทเรียนอย่างเป็นทางการ (กึ่ง) ที่ดีหรือไม่? ฉันจำเป็นต้องมองหาแหล่งข้อมูล Jabber มากกว่า XMPP หรือไม่?

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

คำตอบ:


53

นี่อาจเป็นวิธีพื้นฐานเกินไป แต่อย่างน้อยก็เป็นเทคนิค: https://web.archive.org/web/20170916193014/http://www.adarshr.com/fun-with-xmpp-and-google-talkและ ส่วนที่สองhttps://web.archive.org/web/20171005104211/http://www.adarshr.com:80/fun-with-xmpp-and-google-talk-part-2

มันอธิบายว่าบทพูดคืออะไรประเภทที่มีอยู่และสิ่งต่างๆ


เราทำให้ขั้นตอนการสร้างแอพแชทง่ายขึ้นภายใต้ iOS โดยใช้โกโก้พอดคุณสามารถเรียนรู้เพิ่มเติมหรือดาวน์โหลดโค้ดสาธิตได้ที่นี่github.com/processone/demo-xmpp-ios
Loegic

กระจกของฉันยังอยู่ไม่แน่ใจว่าทำไมถึงถูกลบออกจากคำตอบของฉัน ... f.gdr.name/xmpp-tutorial.tar.gz
GDR

36

นี่คือสิ่งที่ทำให้ฉันเริ่มต้นในการพัฒนา XMPP:

  • หนังสือที่ดี: XMPP The Definivie Guide
  • Java API สำหรับผู้ใหญ่ ฉันเลือก Smack Library จาก Ignite Realtime และใช้ภาษาที่น่าสนใจพร้อมสคริปต์เล็ก ๆ น้อย ๆ เพื่อเรียนรู้พื้นฐาน

ต่อมาฉันได้พัฒนาปลั๊กอินสำหรับเซิร์ฟเวอร์ OpenFire XMPP มีบทเรียนและฟอรัมบนไซต์ของพวกเขาเช่นกัน ฉันคิดว่าทั้ง api ของ smack และ openfire นั้นง่ายต่อการเรียนรู้

หากคุณไม่ได้ใช้ java: หนังสืออ้างอิงถึงไลบรารี SkeekXMPP Python และใช้เพื่อสร้างตัวอย่าง (echo bot, ... )


ละเอียด. ฉันขอแนะนำให้คุณดูหนังสือ เนื่องจากคลาส API ส่วนใหญ่ตั้งชื่อตามแนวคิด / บทสรุป xmpp คุณจะมีจุดเริ่มต้นที่ดีเมื่อคุณรู้คำศัพท์พื้นฐานแล้ว
towe75

1
นอกจากนี้การเขียนโปรแกรม Professional XMPP ด้วย JavaScript และ jQuery ของ jack moffit นั้นยอดเยี่ยมดีกว่าที่กล่าวมาข้างต้น (O'Reilly) professionalxmpp.com

เตรียมพร้อมที่จะเห็นการพิมพ์ผิดและข้อผิดพลาดมากมายในขณะที่อ่าน XMPP The Definivie Guide (ส่วนใหญ่อยู่ในโค้ดตัวอย่าง)
kas-kad

XMPP The Definitive Guide นั้นยอดเยี่ยมและมีรายละเอียดอาจจะล้าสมัยไปหน่อย แต่ก็ควรเริ่มต้นด้วยตัวเองให้ดี
Jerry

17

ตามที่คนอื่น ๆ ได้กล่าวไว้ข้อกำหนดเป็นการแนะนำที่ดี เป็นความจริงที่ว่าพวกเขามีลักษณะทางเทคนิคและมีความแม่นยำ - แต่เป็นข้อกำหนดที่ดีที่สุดที่ฉันเคยเห็นสำหรับโปรโตคอลใด ๆ โดยเฉพาะ RFCs ล่าสุด ( 6120และ6121 ) ซึ่งชี้แจงพื้นที่สีเทาบางส่วนใน ต้นฉบับ

เช่นคุณพูดถึงการที่ต้องการทราบความหมายของบทที่มันอธิบาย (มีตัวอย่าง) ใน6120 มาตรา 8

หากคุณมีข้อเสนอแนะใด ๆ เกี่ยวกับวิธีการทำให้ข้อมูลจำเพาะชัดเจนขึ้นให้พูดในรายชื่ออีเมล XMPPซึ่งข้อเสนอแนะทั้งหมดจะได้รับการพิจารณาสำหรับร่างข้อกำหนดถัดไป

หากข้อมูลจำเพาะนั้นมากเกินไปสำหรับคุณ (ฉันรู้สึกขอบคุณที่บางคนชอบรูปภาพมากกว่าฉัน) ให้พิจารณาหนังสือ (ไม่ว่าจะเป็นรูปแบบกระดาษหรือดิจิทัล) - หนังสือเล่มนี้ได้รับการออกแบบมาเพื่อเป็นการแนะนำทั้งข้อมูลจำเพาะหลักและส่วนใหญ่อย่างง่ายดาย ส่วนขยายทั่วไปและเขียนโดยผู้ที่ช่วยพัฒนาและนำไปใช้


1
ความดี RFC 6120 เพียงอย่างเดียวมีความยาวกว่า 200 หน้า และฉันคิดว่าพวกเขาควรจะทำให้มันเรียบง่าย ..........
Pacerier

1
ความเรียบง่ายไม่ได้หมายความถึงข้อกำหนดสั้น ๆ โดยอัตโนมัติ สำหรับตัวเองพบว่า XMPP ค่อนข้างง่าย โดยเฉพาะอย่างยิ่งความเป็นโมดูลาร์ของ XMPP นั่นคือการแยกระหว่าง XMPP Core, XMPP IM และ XEP ทำให้โปรโตคอลสำหรับฉันน่าสนใจ
ไหล

1
ตามที่คนอื่น ๆ ชี้ให้เห็น RFC เป็นเพื่อนที่ดีที่สุดเมื่อเรียนรู้เกี่ยวกับ XMPP ฉันเรียนรู้ XMPP ด้วยตัวเองเมื่อไม่กี่ปีที่ผ่านมาและได้รวบรวมบิตและข้อมูลลงในแบบฝึกหัดที่กำหนดเป้าหมายไว้สำหรับผู้เริ่มต้น การแนะนำ XMPPและบัญชีรายชื่อและการแสดงตนที่เป็นมิตรควรเป็นการเริ่มต้นที่ดี
musimbate

8

RFCs (แสดงในหน้า Wikipedia) ควรเป็นข้อมูลเบื้องต้นที่ดีสำหรับหัวข้อนี้

ตัวอย่างเช่นRFC3920: Extensible Messaging and Presence Protocol (XMPP): Core


2
ฉันอยากจะหาสิ่งอื่นที่ไม่ใช่โปรโตคอลดิบซึ่งเขียนให้แม่นยำแทนที่จะเป็นมิตร ... แต่ก็ยังรู้ว่ามันครอบคลุมพื้นฐานนั้นมีประโยชน์
คุณบอย

คุณกำลังมองหาโปรแกรมเมอร์สอน XMPP ที่ไม่ได้เจาะลึกถึงพื้นฐานของโปรโตคอลใช่หรือไม่? ฉันได้ทดลองใช้ "XMPP Python API" (Google AP-Engine) มานานแล้ว: code.google.com/appengine/docs/python/xmpp/overview.html บางทีนี่อาจเป็นการเข้าสู่โลก XMPP ก็ได้ :)
FloE

เรียงลำดับจาก ... แต่เทคโนโลยีทุกอย่างที่ฉันเคยทำงานร่วมกับคุณมีข้อมูลจำเพาะอย่างเป็นทางการเป็นข้อมูลอ้างอิง แต่อ่านบทแนะนำที่เน้นการเรียนรู้พื้นฐานได้เร็ว เช่น DirectX หรือ Spring หรือ CSS หรืออะไรก็ได้จริงๆ
คุณบอย

ฉันเข้าใจ. คำศัพท์พื้นฐานที่คุณขอมีการกำหนดและอธิบายไว้ใน RFCs และบน xmpp.com (และอาจมีเพียงที่นั่น ... ) สำหรับบทแนะนำที่เป็นประโยชน์มากขึ้นมีตัวอย่างและบทช่วยสอนมากมายในการสร้างไคลเอ็นต์ Jabber ของคุณเองด้วย API ต่างๆใน Java, Perl, Ruby, Python, ... บนเว็บ (ดูลิงก์ในความคิดเห็นก่อนหน้านี้)
FloE

@FloE RFC ที่คุณยกมานั้นล้าสมัย นอกจากการอ่านว่า RFC ไม่เพียงพอแล้วยังมี RFC ที่เกี่ยวข้องอีกมากมายให้อ่านสำหรับ XMPP
Pacerier

2

นี่อาจเป็นคำถามเก่า ๆ แต่ฉันแค่อยากจะคงกระบวนการที่ใช้เพื่อเรียนรู้ XMPP

ไม่กี่ปีที่ผ่านมาฉันและเพื่อนสองสามคนกำลังเรียนรู้เกี่ยวกับวิธีใช้ประโยชน์จาก XMPP และการทำความเข้าใจว่ามันเข้ากับชิ้นงานขนาดใหญ่ได้อย่างไรนั้นเป็นงานที่น่าเบื่อ ฉันขอแนะนำให้เริ่มต้นโดยอ่านหน้าวิกิพีเดียของ XMPP:

http://en.wikipedia.org/wiki/XMPP

คุณจะแปลกใจว่ามีกี่คนที่ไม่สามารถตอบคำถามเกี่ยวกับ XMPP ซึ่งเป็นพื้นฐานที่สุดได้

ฉันขอแนะนำให้อ่านบทความนี้:

http://www.infoworld.com/article/2682116/application-development/xmpp-rises-to-face-simple-standard.html

มันจะทำให้คุณรู้สึกถึงแรงจูงใจที่อยู่เบื้องหลัง XMPP มันเป็นประวัติศาสตร์และเป็นโปรโตคอลที่เคยมีมาก่อนหน้านี้

จากนั้นคุณควรอ่านแหล่งที่มาของหน้าวิกิพีเดียเพื่อให้เข้าใจอย่างถ่องแท้มากขึ้นเกี่ยวกับคุณสมบัติใด ๆ ที่คุณอาจสนใจใน XMPP


1

ใช้ไลบรารี xmpp asmack จาก

http://beem-project.com/projects/beem/files ดาวน์โหลดasmack-android-7-beem-jingle.jar

และเอกสารของ

http://www.igniterealtime.org/downloads/index.jsp

หวังว่ามันจะช่วยคนอื่นเหมือนที่ช่วยฉันได้


เหตุใดจึงใช้ Beem แทนหน้า ASmack ดั้งเดิม
Pacerier

1
@Pacerier ครั้งล่าสุดฉันตรวจสอบว่า asmack ไม่เสถียรและไม่ได้รับการอัปเดตเป็นประจำดังนั้นฉันจึงใช้ asmack เวอร์ชัน beem ที่อัปเดตเป็นประจำแทนและดูเหมือนว่าจะเสถียรกว่าด้วย
Sheraz Ahmad Khilji

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.