Openfire is an open-source Real-time Collaborative (RTC) server developed in Java based on the XMPP (jabber) protocol.
Smack is an XMPP client compiled in Java.CodeLibrary is the core of spark
There are always a lot of interesting things in the open-source world. These three are combined into a complete XMPP im implementation.
Openfire-server side
Spark -- Client
Smack-Implementation of XMPP transmission protocol
The three are implemented based on the Java language. XMPP is a protocol and the Protocol needs to be implemented. Smack plays such a role.
Openfire is an im-based server implementation based on XMPP protocol. Although two users can send messages in point-to-point mode after connection, however, you still need to connect to the server to obtain some connection information and communication information. Therefore, the server must be implemented.
Spark provides a basic implementation of the client and provides a good plug-in architecture. This is a good news for developers. I strongly recommend that you implement your new functions based on plug-ins instead of modifying them.Source codeThis helps your project architecture and minimize the impact of the original project.
Smack is a Java implementation of XMPP protocol and provides a set of scalable APIs. However, sometimes you still have to use your own custom XML file content to implement your own functions.
Relationship between the three:
It can be seen that both the client and server can be extended through plug-ins, and smack is the medium for both to transmit data.
Openfire official
Introduction: http://www.igniterealtime.org/index.jsp
Download: http://www.igniterealtime.org/downloads/index.jsp