XMPP (Extensible Messaging and Presence Protocol) ist ein offenes, auf XML basierendes Kommunikationsprotokoll, das ursprünglich für Instant Messaging (IM) und Präsenzinformationen entwickelt wurde. Es wird häufig in Echtzeitanwendungen eingesetzt, die eine zuverlässige Kommunikation in Form von Nachrichten und Benachrichtigungen erfordern. XMPP ist besonders bekannt für seine dezentralisierte Architektur und seine Erweiterbarkeit, wodurch es sich für eine Vielzahl von Anwendungen eignet.
XMPP basiert auf einem Client-Server-Modell und verwendet XML-Nachrichten für die Kommunikation zwischen den verschiedenen Teilnehmern.
Die grundlegende Kommunikation erfolgt über XML-Nachrichten, die standardisierte Tags wie <message>, <presence>, <iq> (Information Query) verwenden. Ein Beispiel für eine einfache XMPP-Nachricht:
<message from="alice@example.com" to="bob@example.com" type="chat"> <body>Hello, Bob!</body> </message>
XMPP bietet eine Vielzahl von XMPP Extension Protocols (XEPs), die zusätzliche Funktionen bereitstellen. Einige der bekanntesten XEPs umfassen:
Server:
Clients: