Looking for xmpp Keywords? Try Ask4Keywords

xmppErste Schritte mit xmpp


Bemerkungen

Das XMPP (Extensible Messaging and Presence Protocol) ist ein Netzwerkprotokoll, das mithilfe von XML strukturierte Daten zwischen zwei oder mehr mit dem Netzwerk verbundenen Entitäten nahezu in Echtzeit austauscht. XMPP wurde erstellt, um die IETF-Richtlinien für Instant Messaging und Anwesenheitsprotokolle ( RFC 2779 ) zu erfüllen, aber sein Zweck geht weit über IM hinaus. Es wird auch als nachrichtenorientierte Middleware, für die Machine-to-Machine-Kommunikation (M2M) und für das Internet der Dinge (IoT) eingesetzt.

Das einfache XMPP-Kernprotokoll bietet Benutzern die Möglichkeit

  • starke Authentifizierung
  • globale Adressen
  • strukturiertes und erweiterbares Format für den Datenaustausch

Der erweiterbare Ansatz macht es möglich, benutzerdefinierte Protokolle über den XMPP-Kern aufzubauen.

Das XMPP-Kernprotokoll ist in RFC 6120 definiert und wird von der Internet Engineering Task Force (XMPP) verwaltet. Die Instant Messaging-Erweiterungen sind in RFC 6121 definiert, und ein drittes Dokument ( RFC 7622 ) definiert das Format von XMPP-Adressen, die auch als "Jabber Identifiers" (JIDs) bezeichnet werden. Zusätzliche Funktionen werden in Form von XMPP-Erweiterungsprotokollen (XEPs) angegeben, die von der Community erstellt und von der XMPP Standards Foundation (XSF) verwaltet werden.

Versionen

Ausführung Anmerkungen Veröffentlichungsdatum
1,0 Kern: RFC 6120 , IM: RFC 6121 , Adresse: RFC 7622 2011-03-01
0,9 Kern: RFC 3920 , IM: RFC 3921 , Adresse: RFC 6122 2004-10-01

Verbindung herstellen und Nachricht senden

SleekXMPP (Python)

import sleekxmpp

client = sleekxmpp.Client("address@example.net", "password")
client.connect()
client.process(blocking=False)
client.send_message(mto="remote@example.net", mbody=self.msg)
 

Smack (Java / Android)

XMPPTCPConnection connection = new XMPPTCPConnection("user", "password", "example.org")
connection.connect().login();
Message message = new Message("otheruser@example.net", "Hi, how are you?");
connection.sendStanza(message);
connection.disconnect();
 

Erstellen Sie eine Xmpp-Clientverbindung mit der agsxmpp-Bibliothek

public void OpenXmppConnection(int port, bool useSsl, string serverJid, string userName, string password)
        {
            try
            {
                _xmppClientConnection.AutoResolveConnectServer = true;
                _xmppClientConnection.Port = port;
                _xmppClientConnection.UseSSL = useSsl;
                _xmppClientConnection.Server = serverJid;
                _xmppClientConnection.Username = userName;
                _xmppClientConnection.Password = password;
                _xmppClientConnection.Resource = "web";


                //authenticate and open connection with server
                _xmppClientConnection.Open();
            }
            catch (Exception ex)
            {
            }
        }
 

Eine Chat-Sitzung erstellen und eine Nachricht senden

Smack (Java)

  • Verwenden von Smack 4.1
  • Es wird empfohlen, die Abhängigkeit von Smack als Maven in Ihr Projekt aufzunehmen (z. B. durch Verwendung von Gradle oder Maven).
  • Ansonsten müssen die folgenden Smack-Artefakte / Gläser manuell zum Klassenpfad hinzugefügt werden: Smack-Core, Smack-Erweiterungen, Smack-Experimental, Smack-Im, Smnack-Tcp, Smack-Java7
import org.jivesoftware.smack.ConnectionConfiguration.SecurityMode;
import org.jivesoftware.smack.SmackException;
import org.jivesoftware.smack.XMPPException;
import org.jivesoftware.smack.chat.Chat;
import org.jivesoftware.smack.chat.ChatManager;
import org.jivesoftware.smack.chat.ChatMessageListener;
import org.jivesoftware.smack.packet.Message;
import org.jivesoftware.smack.packet.Presence;
import org.jivesoftware.smack.tcp.XMPPTCPConnection;
import org.jivesoftware.smack.tcp.XMPPTCPConnectionConfiguration;

public void sendMessage() {

XMPPTCPConnectionConfiguration config = 
  XMPPTCPConnectionConfiguration.builder()
            .setServiceName("mydomain.local")
            .setHost("127.0.0.1")
            .setPort(5222)
            .build();

XMPPTCPConnection connection = new XMPPTCPConnection(config);

connection.connect();
connection.login("test1", "test1pwd"); 

ChatManager chatManager = ChatManager.getInstanceFor(connection);
String test2JID = "test2@domain.example";
Chat chat = chatManager.createChat(test2JID);
chat.sendMessage("Hello, how are you?");

connection.disconnect();
}
 

Senden Sie eine Nachricht mit der agsxmpp-Bibliothek

        public class ConversationManager
        {
            #region ClassMemeber
    
            private XmppClientConnection _xmppClientConnection = null;
    
    
    
     public ConversationManager(XmppClientConnection con)
            {
                _xmppClientConnection = con;
             }

 public void SendMessage(string message, string to, string guid, string type)
        {
            try
            {
                if (_xmppClientConnection != null)
                {
                    Jid jidTo = new Jid(to);
                    agsXMPP.protocol.client.Message mesg = new agsXMPP.protocol.client.Message(jidTo, _ConnectionWrapper.MyJid,
                        agsXMPP.protocol.client.MessageType.chat,
                                      message);

                    mesg.Id = guid;
                    mesg.AddChild(new agsXMPP.protocol.extensions.msgreceipts.Request());//request delievery
                    _xmppClientConnection.Send(mesg);
                }
            }
            catch (Exception ex)
            {
            }
        }

}