Hướng dẫn tốt về XMPP? [đóng cửa]


110

Tôi đã xem xét một số máy chủ XMPP mã nguồn mở và quen thuộc với trang chính thức http://xmpp.org/ . Nhưng cho đến nay tôi vẫn chưa tìm thấy bất cứ điều gì nằm giữa " Giao thức hiện diện và nhắn tin có thể mở rộng (XMPP) là một công nghệ mở cho giao tiếp thời gian thực " và danh sách các thông số kỹ thuật XEP. Ví dụ: các bài báo giải thích các khái niệm cơ bản và thuật ngữ - khổ thơ, IQ, sự hiện diện, v.v., v.v. Ngay cả trang Wikipedia cũng bỏ sót điều này, không ngạc nhiên khi các dự án nguồn mở cho rằng bạn biết những điều này trước khi bắt đầu đào sâu vào mã.

Có một bộ hướng dẫn chính thức (bán) hay về điều này không? Tôi có cần tìm kiếm tài nguyên Jabber thay vì XMPP không?

Trong số những thứ khác, tôi hy vọng sẽ thấy các sơ đồ cho các trường hợp sử dụng và quy trình, không chỉ là văn bản giao thức khô khan. Tôi biết sách về XMPP tồn tại, nhưng nói chung mọi thứ trong sách cũng có sẵn ở một số hình thức trực tuyến.

Câu trả lời:


53

Đây có lẽ là cách quá cơ bản, nhưng ít nhất nó là kỹ thuật: https://web.archive.org/web/20170916193014/http://www.adarshr.com/fun-with-xmpp-and-google-talk và phần thứ hai, https://web.archive.org/web/20171005104211/http://www.adarshr.com:80/fun-with-xmpp-and-google-talk-part-2

Nó giải thích những khổ thơ là gì, những loại nào có sẵn và những thứ.


Chúng tôi đơn giản hóa quá trình tạo ra trò chuyện ứng dụng dưới iOS sử dụng vỏ ca cao, bạn có thể tìm hiểu thêm hoặc tải về code demo đây github.com/processone/demo-xmpp-ios
Loegic

Gương của tôi vẫn sáng, không rõ tại sao nó bị xóa khỏi câu trả lời của tôi ... f.gdr.name/xmpp-tutorial.tar.gz
GDR

36

Đây là những gì khiến tôi bắt đầu với Phát triển XMPP:

  • Một cuốn sách hay: XMPP The Definivie Guide
  • Một API Java trưởng thành. Tôi đã chọn Thư viện Smack từ Ignite Realtime và sử dụng ngôn ngữ thú vị với một loạt các tập lệnh nhỏ để tìm hiểu những điều cơ bản.

Sau đó, tôi đã phát triển một plugin cho Máy chủ OpenFire XMPP. Có một số hướng dẫn và một diễn đàn trên trang web của họ. Tôi nghĩ rằng cả api smack và openfire đều dễ học.

Nếu bạn không sử dụng java: Cuốn sách tham chiếu đến thư viện Python SkeekXMPP và nó sử dụng nó để tạo một số ví dụ (echo bot, ...).


Khỏe. Tôi đề nghị bạn xem qua cuốn sách. Vì các lớp API chủ yếu được đặt tên theo các khái niệm / stanzas xmpp, bạn sẽ có một điểm khởi đầu tốt khi bạn biết các thuật ngữ cơ bản.
towe75

1
Ngoài ra, cuốn sách Lập trình XMPP Chuyên nghiệp với JavaScript và jQuery của jack moffit là tuyệt vời, tốt hơn cuốn sách đã đề cập ở trên (O'Reilly). professionalxmpp.com

Hãy sẵn sàng để xem hàng tấn lỗi chính tả và sai lầm trong khi đọc Hướng dẫn Định nghĩa của XMPP (chủ yếu là trong mã mẫu)
kas-kad

XMPP The Definitive Guide rất hay và chi tiết, có lẽ hơi lỗi thời nhưng bản thân tôi đã có một khởi đầu tốt.
Jerry

17

Như những người khác đã nói, các thông số kỹ thuật là một giới thiệu tốt. Đúng là chúng có bản chất kỹ thuật và nói chính xác - nhưng chúng thực sự là một số thông số kỹ thuật tốt nhất mà tôi từng thấy cho bất kỳ giao thức nào, đặc biệt là các RFC mới nhất ( 61206121 ) làm rõ một số vùng xám trong bản gốc.

Ví dụ: bạn đề cập đến việc muốn biết định nghĩa của một khổ thơ, nó được giải thích (với ví dụ) trong 6120 phần 8 .

Nếu bạn có bất kỳ phản hồi nào về cách các thông số kỹ thuật có thể được làm rõ ràng hơn, hãy nói như vậy trên danh sách gửi thư XMPP , nơi tất cả phản hồi được xem xét cho các bản thảo tiếp theo của thông số kỹ thuật.

Nếu các thông số kỹ thuật thực sự quá nhiều đối với bạn (tôi đánh giá cao một số người thích nhiều tranh hơn tôi), hãy xem xét cuốn sách (dù ở dạng giấy hay kỹ thuật số) - nó được thiết kế chính xác như một phần giới thiệu dễ dàng về cả thông số kỹ thuật cốt lõi và hầu hết các tiện ích mở rộng chung và được viết bởi những người giúp phát triển và triển khai chúng.


1
Tốt, chỉ riêng RFC 6120 đã dài hơn 200 trang. Và tôi nghĩ rằng họ phải giữ cho nó đơn giản ..........
Pacerier

1
Tính đơn giản không tự động ngụ ý một đặc điểm kỹ thuật ngắn. Đối với bản thân tôi, tôi thấy XMPP khá đơn giản. Đặc biệt là tính mô-đun của XMPP tức là sự phân chia giữa XMPP Core, XMPP IM và XEP khiến giao thức đối với tôi hấp dẫn.
Dòng chảy

1
Như những người khác đã chỉ ra, RFC là những người bạn tốt nhất khi tìm hiểu về XMPP. Tôi đã tự học XMPP một vài năm trở lại đây và đã tổng hợp các bit và bit thông tin thành các hướng dẫn nhắm mục tiêu cho người sử dụng. Phần giới thiệu thân thiện về XMPPRoster and Presence sẽ là một khởi đầu tốt.
musimbate

8

RFCs (được liệt kê trên trang Wikipedia) nên là một phần giới thiệu khá tốt về chủ đề này.

Ví dụ: RFC3920: Giao thức hiện diện và nhắn tin có thể mở rộng (XMPP): Core


2
Tôi muốn tìm một cái gì đó khác ngoài giao thức thô, chúng được viết để chính xác hơn là thân thiện ... nhưng vẫn biết nó bao gồm các nguyên tắc cơ bản hữu ích.
Mr. Boy

Vì vậy, bạn đang tìm kiếm một hướng dẫn lập trình viên về XMPP mà không đi sâu vào những điều cơ bản của giao thức? Tôi đã thử nghiệm một thời gian trước với "XMPP Python API" (Google AP-Engine): code.google.com/appengine/docs/python/xmpp/overview.html Có lẽ đây có thể là một mục vào thế giới XMPP :)
FloE

Đại loại là ... nhưng mọi công nghệ tôi từng làm việc với bạn đều có thông số kỹ thuật chính thức làm tài liệu tham khảo, nhưng hãy đọc các hướng dẫn để tìm hiểu những điều cơ bản nhanh hơn. Như DirectX hoặc Spring hoặc CSS hoặc bất cứ thứ gì thực sự.
Mr. Boy

Tôi hiểu. Thuật ngữ cơ bản bạn yêu cầu được định nghĩa và mô tả trong RFC và trên xmpp.com (và có lẽ chỉ ở đó ...). Để giới thiệu thực tế hơn, có hàng tá ví dụ và hướng dẫn để xây dựng ứng dụng khách Jabber của riêng bạn với các API khác nhau trong Java, Perl, Ruby, Python, ... trên web (lấy liên kết trong nhận xét trước).
FloE

@FloE, RFC mà bạn trích dẫn đã lỗi thời. Ngoài việc đọc RFC là không đủ, có rất nhiều RFC có liên quan với nhau để đọc cho XMPP.
Pacerier

2

Đây có thể là một câu hỏi cũ, nhưng tôi chỉ muốn giữ lại quy trình tôi đã sử dụng để học XMPP.

Một vài năm trước, một vài người bạn của tôi và tôi đang tìm hiểu về cách tận dụng XMPP, và hiểu cách nó phù hợp với mảnh lớn hơn là một nhiệm vụ khá tẻ nhạt. Tôi thực sự khuyên bạn nên bắt đầu bằng cách đọc trang wikipedia của XMPP:

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

Bạn sẽ ngạc nhiên khi có nhiều người không thể trả lời các câu hỏi về XMPP, vốn là cơ bản nhất.

Tôi cũng khuyên bạn nên đọc bài viết này:

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

Nó sẽ cho bạn cảm giác về động lực đằng sau XMPP, đó là lịch sử và đó là các giao thức từng ngang hàng với nó.

Từ đó, tốt nhất là bạn nên đọc các nguồn của trang wikipedia để hiểu sâu hơn về bất kỳ tính năng nào bạn có thể quan tâm với XMPP.


1

Sử dụng thư viện xmpp asmack từ

http://beem-project.com/projects/beem/files tải xuống asmack-android-7-beem-jingle.jar

và tài liệu của

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

Hy vọng nó sẽ giúp những người khác như nó đã giúp tôi


Tại sao sử dụng Beem thay vì trang ASmack ban đầu?
Pacerier

1
@Pacerier Lần trước, tôi đã kiểm tra asmack không ổn định và nó không được cập nhật thường xuyên nên thay vào đó, tôi đã sử dụng phiên bản beem của asmack được cập nhật thường xuyên và nó cũng có vẻ ổn định hơn.
Sheraz Ahmad Khilji

1

Cài đặt openfire ở phía máy chủ và sử dụng qsmack trên phía Android.


3
Tại sao chúng tôi qsmack thay vì asmack?
Pacerier
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.