mirror of
https://codeberg.org/Mercury-IM/Smack
synced 2024-10-31 22:15:59 +01:00
51 lines
2.5 KiB
HTML
51 lines
2.5 KiB
HTML
<body>
|
|
|
|
<h1>Overview</h1>
|
|
|
|
<p>Smack is a library for client-to-server XMPP connections to perform real-time communications and data exchange. This includes, but is not limited to, instant messaging and group chat. More genericly speaking, it allows you to easily exchange data in various ways: For example fire-and-forget, publish-subscribe, between human and non-human endpoints. The use cases include M2M, IoT, and many more.</p>
|
|
|
|
<p>Smack is a pure Java library, open-source and highly modular. It runs on Android and Java SE. The API strives to be easy to use but yet powerful.</p>
|
|
|
|
<h2>Key Advantages</h2>
|
|
|
|
Smack is extremely simple to use. Sending a text message to a user can be accomplished in only a few lines of code.
|
|
|
|
<pre>
|
|
AbstractXMPPConnection connection = new XMPPTCPConnection("mtucker", "password", "jabber.org");
|
|
connection.connect().login();
|
|
|
|
Message message = connection.getStanzaFactory()
|
|
.buildMessageStanza()
|
|
.to("jsmith@igniterealtime.org")
|
|
.setBody("Howdy! How are you?")
|
|
.build();
|
|
|
|
connection.sendStanza(message);
|
|
|
|
connection.disconnect();
|
|
</pre>
|
|
|
|
<p>Smack doesn't force you to code at the protcol level of XMPP. The library provides intelligent higher level constructs, often called {@link org.jivesoftware.smack.Manager}, which let you program more efficiently. Other examples of those constructs are the Chat and Roster classes.</p>
|
|
|
|
<p>Smack comes with APIs for easy machine-to-machine communication. You can set any number of properties on each message, including properties that are Java objects.</p>
|
|
|
|
<h2>License</h2>
|
|
|
|
<p>Smack is open-source and most parts are under the Apache License
|
|
2.0, which means you can incorporate Smack into your commercial or
|
|
non-commercial applications. Some parts of Smack may be under a
|
|
different open-source license. Please refer to the individual
|
|
subprojects for their license statement.</p>
|
|
|
|
<p>Note that the Apache License 2.0 requires that the contents of a
|
|
NOICE text file are shown "…within a display generated by the
|
|
Derivative Works, if and wherever such third-party notices normally
|
|
appear.". Smack comes with such a NOTICE file. The content of
|
|
Smack's NOTICE file can conveniently be retrieved using
|
|
{@link org.jivesoftware.smack.Smack#getNoticeStream}.</p>
|
|
|
|
<h2>About XMPP</h2>
|
|
|
|
<p>XMPP (eXtensible Messaging and Presence Protocol) is an open protocol standardized by the <a href="https://ietf.org/">Internet Engineering Task Force (IETF)</a> and supported and extended by the <a href="https://www.xmpp.org/">XMPP Standards Foundation (XSF)</a>.</p>
|
|
|
|
</body>
|