xmppXmpp के साथ आरंभ करना


टिप्पणियों

एक्स्टेंसिबल मैसेजिंग और प्रेजेंस प्रोटोकॉल (एक्सएमपीपी) एक नेटवर्क प्रोटोकॉल है जो निकट-वास्तविक समय में दो या अधिक नेटवर्क कनेक्टेड संस्थाओं के बीच संरचित डेटा का आदान-प्रदान करने के लिए एक्सएमएल का उपयोग करता है। XMPP को त्वरित संदेश और उपस्थिति प्रोटोकॉल ( RFC 2779 ) के लिए IETF के दिशानिर्देशों को संतुष्ट करने के लिए बनाया गया था, लेकिन इसका उद्देश्य IM से कहीं अधिक है। यह मशीन-टू-मशीन (M2M) संचार और इंटरनेट ऑफ थिंग्स (IoO) के लिए एक संदेश-उन्मुख मिडलवेयर के रूप में भी उपयोग किया जाता है।

हल्के XMPP कोर प्रोटोकॉल के साथ उपयोगकर्ताओं को प्रदान करता है

  • मजबूत प्रमाणीकरण
  • वैश्विक पते
  • डेटा एक्सचेंज के लिए संरचित और एक्स्टेंसिबल प्रारूप

एक्स्टेंसिबल दृष्टिकोण XMPP कोर के शीर्ष पर कस्टम प्रोटोकॉल का निर्माण करना संभव बनाता है।

कोर XMPP प्रोटोकॉल RFC 6120 में परिभाषित किया गया है और इंटरनेट इंजीनियरिंग टास्क फोर्स (XMPP) द्वारा प्रबंधित किया जाता है। इंस्टेंट मैसेजिंग एक्सटेंशन RFC 6121 में परिभाषित हैं, और एक तीसरा दस्तावेज़ ( RFC 7622 ) XMPP पतों के प्रारूप को परिभाषित करता है, जिसे "Jabber Identifiers" (JID) भी कहा जाता है। अतिरिक्त कार्यक्षमता XMPP एक्सटेंशन प्रोटोकॉल (XEPs) के रूप में निर्दिष्ट है, जो समुदाय द्वारा बनाए गए हैं और XMPP मानक फाउंडेशन (XSF) द्वारा बनाए रखा गया है।

संस्करण

संस्करण टिप्पणियाँ रिलीज़ की तारीख
1.0 कोर: RFC 6120 , IM: RFC 6121 , पता: RFC 7622 2011-03-01
0.9 कोर: RFC 3920 , IM: RFC 3921 , पता: RFC 6122 2004/10/01

संदेश भेजना और भेजना

SleekXMPP (पायथन)

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)
 

स्मैक (जावा / एंड्रॉइड)

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();
 

Agsxmpp लाइब्रेरी का उपयोग करके Xmpp क्लाइंट कनेक्शन बनाएं

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)
            {
            }
        }
 

एक चैट सत्र बनाना और एक संदेश भेजना

स्मैक (जावा)

  • स्मैक का उपयोग करना 4.1
  • स्मैक को अपनी परियोजना में मावेन निर्भरता के रूप में शामिल करने की सिफारिश की जाती है (जैसे कि ढाल या मावेन का उपयोग करके)।
  • निम्नलिखित स्मैक की कलाकृतियों / जार को क्लासपाथ में मैन्युअल रूप से जोड़ना होगा: स्मैक-कोर, स्मैक-एक्सटेंशन, स्मैक-प्रायोगिक, स्मैक-इम, स्मैक-टीसीपी, स्मैक-जावा 7
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();
}
 

एग्सएक्सएमपीपी लाइब्रेरी का उपयोग करके एक संदेश भेजें

        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)
            {
            }
        }

}