Extensible Messaging and Presence Protocol – Wikipedia, wolna encyklopedia

Z Wikipedii, wolnej encyklopedii
(Przekierowano z XMPP)
Skocz do: nawigacji, szukaj
Logo of the XMPP Standards Foundation

Extensible Messaging and Presence Protocol (XMPP) (dawniej Jabber[1]) – protokół bazujący na języku XML umożliwiający przesyłanie w czasie rzeczywistym wiadomości oraz statusu. Protokół ma zastosowanie nie tylko w komunikatorach, ale również w innych systemach natychmiastowej wymiany informacji.

IETF opublikowało RFC dotyczące XMPP o statusie Proposed Standard.

Spis treści

[edytuj] Przykładowa sesja XMPP

Klient (kuusipuu) łączy się z serwerem XMPP (amessage.de port tcp numer 5222), wysyła wiadomość (temat: "test 1449" i treść: "test 1449") do innego klienta (tero) i wylogowywuje się.

kuusipuu (otwarcie połączenia):
 <?xml version="1.0"?>
 <stream:stream xmlns:stream="http://etherx.jabber.org/streams"
 xmlns="jabber:client" to="amessage.de">

amessage.de:
 <stream:stream xmlns='jabber:client'
 xmlns:stream='http://etherx.jabber.org/streams' from='amessage.de'
 id='1461777714'>

kuusipuu (autoryzacja użytkownika):
 <iq type="set" id="auth_2" to="amessage.de" >
   <query xmlns="jabber:iq:auth">
     <username>kuusipuu</username>
     <password>mypassword</password>
     <resource>Work</resource>
    </query>
 </iq>

amessage.de:
 <iq from="amessage.de" id='auth_2' type='result'/>

kuusipuu (wysyłanie wiadomości i zamknięcie połączenia):
 <message to="tero@example.com" >
   <subject>test 1449</subject>
   <body>test 1449</body>
 </message>
 <presence type="unavailable" >
   <status>Logged out</status>
 </presence>
 </stream:stream>

amessage.de:
 </stream:stream>

[edytuj] XMPP a Jabber

Jabber został zapoczątkowany w 1998 roku przez Jeremie'ego Millera. Od tamtego czasu powstało wiele serwerów oraz klientów XMPP, które korzystają z tego protokołu. Zaś sam protokół nie został nigdy w pełni opisany, a jego dokumentacja jest opisem stanu istniejącego i nie może być brana jako standard, który powinien zostać zaimplementowany.


XMPP został ustandaryzowaną przez IETF, którego oryginalna nazwa jest Jabber. Mimo tego XMPP zakłada kompatybilność wstecz. Mimo tej wstecznej kompatybilności, bardzo stare serwery nie są w pełni zgodne z XMPP.

Implementacje XMPP można zobaczyć w takich serwerach jak jabberd2, oraz klientach np. Tkabber.

Trzeba też zaznaczyć, że XMPP określa sposób połączenia się klienta do serwera, serwerów między sobą, raportowania błędów, wymiany podstawowych informacji między serwerami i klientami oraz sposób zarządzania listą kontaktów i regułami prywatności. Pozostała funkcjonalność, opisana XEP-ami, nie jest już częścią XMPP - XMPP nie określa i nie będzie określał sposobu przesyłu plików czy dostępu do listy transportów na serwerze. To wszystko to tylko rozszerzenia będące częścią Jabber, a nie XMPP.

[edytuj] Ewolucja

  • Do uwierzytelnienia użytkowników XMPP wykorzystuje protokół SASL. Również uwierzytelnienie między serwerami może być realizowane przy pomocy tego protokołu.
  • Dodano reguły prywatności. Pozwalają one określić użytkownikowi od kogo chce dostawać wiadomości, komu pokazywać swój status.
  • XMPP zawiera dokładniejsze informacje o powstałych błędach, dzięki czemu klient użytkownika może wygenerować zrozumiały komunikat lub podjąć automatycznie działanie, które obsłuży dany wyjątek.
  • Wbudowano rozszerzenie StartTLS, które pozwala na szyfrowanie połączenia na standardowym porcie.

[edytuj] Dokumenty RFC

  • RFC 3920 Extensible Messaging and Presence Protocol (XMPP): Core
  • RFC 3921 Extensible Messaging and Presence Protocol (XMPP): Instant Messaging and Presence
  • RFC 3922 Mapping the Extensible Messaging and Presence Protocol (XMPP) to Common Presence and Instant Messaging (CPIM)
  • RFC 3923 End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol (XMPP)
  • RFC 4622 Internationalized Resource Identifiers (IRIs) and Uniform Resource Identifiers (URIs) for the Extensible Messaging and Presence Protocol (XMPP)

Przypisy

[edytuj] Linki zewnętrzne