XMPP and xmpp protocols
XMPP-instant messaging technology Overview
(IM -- Instant Messaging) supports real-time online conversations. If you want to send a message, you need to open a small window so that users and their friends can enter the information and both parties can see that there are many IM systems in the conversation content, for example, AOL, Yahoo IM, MSN, and QQ, the biggest difference lies in the implementation of their respective communication protocols, therefore, the core of instant messaging technology lies in its transmission protocol used to describe how information is transmitted over the network. If a unified transmission protocol is available, direct communication between IM groups should be realized, in order to create a unified standard for instant messaging, the IM protocols that have already appeared include: IETF's conversation initial Protocol (SIP) and instant messaging conversation initial protocol and express extended protocol (SIMPLE) application Exchange Protocol (APEX), display and instant messaging protocol (PRIM), XML-based and open scalable communication and express protocol (XMPP) protocol (often referred to as Jabber Protocol) there have been many attempts to unify the standards of major IM providers (AOL, Yahoo, and Microsoft), but none of them succeeded, and each IM continues to use its own protocol.
XMPP-Origin
XMPP is an XML-based protocol for instant messaging (IM) and online on-site detection. Initially, XMPP was developed as a framework to support instant messaging and online State applications in the enterprise environment. XMPP, formerly Jabber (1998), is a network instant communication protocol defined by an open-source organization. XMPP is a decentralized communication network, which means that as long as the network infrastructure permits, any XMPP user can send messages to any other XMPP user. Multiple XMPP servers can communicate with each other through a dedicated "server-server" protocol, it provides the possibility of creating a decentralized social network and Collaboration Framework. Although XMPP emerged to meet the requirements of "personal-personal" instant messaging, it does not have to be limited to this task.
XMPP-Overview
XMPP is an XML-based protocol that inherits the flexible development in the XML environment. This indicates that XMPP is scalable. You can send extended information to meet your needs, and create applications such as content publishing systems and address-based services at the top of XMPP. In addition, XMPP includes software protocols for the server to enable communication with the other server, this makes it easier for developers to establish customer applications or to add functions to a configured system. The core XML Stream Transmission Protocol definition of XMPP enables XMPP to be deployed on a platform that is more standard than previous network communication protocols.. With the help of XML's easy-to-parse and read features, the XMPP protocol can be very beautiful. the XMPP instant messaging extension application is based on an abstract definition of instant messaging by IETF before, and other widely used instant messaging protocols, such as AIM and QQ, which have complete functions and are improved. XMPP's extended protocol Jingle enables it to support voice and video, currently, iOS does not yet support XMPP. The official documentation is RFC 3920XMPP, which was once the instant messaging protocol launched by Google. It works on behalf of GTalkGoogle Talk, which is Google's IM tool. In addition to its IM functions, in addition, the Voip function is added. The interface is fresh and elegant. You can directly connect to Gmail to receive emails. Because Google Talk is based on the Jabber open-source standard, this standard allows users to connect to other instant messaging systems, such as Apple's iChat, GAIM, Trillian Pro, and Psi. Google Talk can only run Google Talk on Windows platforms. Users of AIM, MSN Messenger, or Yahoo Messenger cannot use this software to communicate with each other. At the Google I/O conference in May 2013, google released the unified cross-platform chat application Hangouts (ring chat) instead of Google TalkGoogle Hangouts, which does not support XMPP. Communication between Google Hangouts users and non-Google services such as jabber.org, a powerful supporter of the XMPP protocol, cannot be conducted. Currently, Google Wave is based on the XMPP protocol, google also developed the Jingle extension for XMPP-based video chat. Although Google hasn't announced a date for shutting down Talk, but from the perspective of Google's Reader and iCal support, the date of closing Talk is not too far away.
XMPP-Definition
XMPP: The Extensible Messaging and Presence Protocol (Extensible communication and representation protocols) XMPP can be used for XML data element stream transmission in service class real-time communication, representation, and demand response services. XMPP is based on the Jabber protocol, while Jabber is a common open protocol in instant messaging. XMPP is based on XML protocol, used for instant messaging (IM) and online on-site detection. Promote quasi-real-time operations between servers. This protocol may eventually allow Internet users to send instant messages to anyone else on the Internet, even if the operating system is different from the browser
XMPP-Basic Structure
XMPP is a typical C/S architecture, instead of using P2P client-to-client architecture like most instant messaging software. That is to say, when two clients communicate in most cases, their messages are transmitted through the server. This architecture is mainly used to simplify the client and put most of the work on the server side for XMPP. Three roles, client, server, and gateway, are defined. Communication can be performed between any of the three two-way communication servers at the same time bear the client information records, the connection management and information routing function gateway is responsible for the interconnection with the heterogeneous instant communication system, heterogeneous systems can include SMS, MSN, ICQ, and other basic network forms. A single client connects to a single server through TCP/IP, and then transmits XML streams over it.
XMPP-Working Principle
The node connects to the server and uses the certificate in the local directory system to specify the target address for its authentication node, so that the server notifies the target status server to find and connect and perform interaction between mutually authenticated nodes.
XMPP-transfer content
XMPP applications transmit commands related to instant messaging. In the past, these commands were sent either in binary format (for example, QQ) or in plain text format (for example, MSN) using plain text instructions, spaces, parameters, and line breaks) the logic of the instant messaging commands transmitted by XMPP is similar to that in the past, but the Protocol format is changed to plain text in XML format. This not only makes resolution easy, but also makes it easy for people to read. It facilitates development and error detection. The core part of XMPP is a stream protocol that sends XML fragments over the network. This stream protocol is the basis for transmitting XMPP instant messaging commands, and is also a very important basic network protocol that can be further used, it can be said that XMPP uses TCP to transmit XML streams. XMPP is a data transmission protocol similar to HTTP. The process is like the process of "unpackaging --> packaging. Only need to understand the type of its receipt and the type of the returned, you can use XMPP for data communication [XMPP official website] (http://xmpp.org)
XMPP-advantages and disadvantages
Advantage open standards (XMPP technical specifications have been defined in RFC 3920 and RFC 3921) confirmed available, Google confirmed GTalk decentralized security scalability disadvantages data overload XML no binary transmission