- Add support for pre-approved subscription requests (RFC 6121 § 3.4)Bug[SMACK-306] - loadRosterOnLogin has non-trivial side effect on getRoster[SMACK-416] - Refactor PEP to make it use the existing pubsub API.[SMACK-674] - PubSub Affiliation extension element is missing 'jid' attribute, and is using wrong element name 'subscription'[SMACK-682] - Add support for "XEP-0360: Nonzas (are not Stanzas)"[SMACK-683] - Using a Proxy with XMPPTCPConnection failes with "SocketException: Unconnected sockets not implemented"[SMACK-691]
- Add support for MUCItem's Actor 'nick'[SMACK-705] - PubSub's Affiliation.getElementName() returns wrong name[SMACK-722] - SASL X-OAUTH2 implementation incorrectly performs Base64 encoding twice[SMACK-723] - Support "Caps Optimizations" (XEP-0115 § 8.4)[SMACK-724] - Do not re-use the Socket after connect() failed.[SMACK-725] - ReconnectionManager should handle AlreadyConnectedException and AlreadyLoggedInException not as failure[SMACK-741] - Ad-hoc command 'note' element 'type' attribute should be treated as optional[SMACK-745] - Memory leak in MultiUserChatNew Feature[SMACK-366] - Add support for DNSSEC.[SMACK-610] - Add support for XEP-0080: User Location[SMACK-619] - Add roomDestroyed to MUC UserStatusListener[SMACK-625] - Add support for XEP-313: Message Archive Management[SMACK-675] - Add support for PubSub affiliation actions as owner[SMACK-677] - Add support for SASL 'authzid' (Authorization Identity)[SMACK-690] - Add support for DNS-Based Authentication of Named Entities (DANE, RFC 6698)[SMACK-731] - Add support for XEP-0191: Blocking Command[SMACK-732] - Smack should be able to handle "single equals sign" SASL responses[SMACK-740] - Add support for Multi-User Chat Light[SMACK-742] - Add support for XEP-0133: Service Administration[SMACK-747] - Add support for XEP-0363: HTTP File UploadTask[SMACK-638] - Call connection creation listeners from within AbstractXMPPConnection's constructor[SMACK-644]
- Throw exception if account creation or password change is performed over insecure connections[SMACK-655] - Enable StreamManagement by defaultImprovement[SMACK-372] - Make package protected methods in PEPItem public[SMACK-572] - Rejoin MUC rooms after reconnect[SMACK-628] - Rework Roster handling with anonymous connections[SMACK-629] - Rework how Smack handles anonymous connections[SMACK-631] - Improve ParsingExceptionCallback, allow it to be a functional interface[SMACK-632] - Make Smack interruptible[SMACK-633] - Allow clean and graceful disconnects (stream closing)[SMACK-634] - Use jxmpp-jid, add Jid class to replace String's being used as JIDs[SMACK-646] - Add support for MUC roomnick rewrite[SMACK-647] - Don't automatically call login() on connect() if the connection was authenticated before[SMACK-648] - Improve MultiUserChat API[SMACK-657] - Rename RosterEntry.getStatus and RosterPacket.ItemStatus to ItemAskStatus[SMACK-663] - Roster should be fully loaded when Roster.getInstanceFor(XMPPConnection) is called with a authenticated connection[SMACK-665] - Rename 'serviceName' to 'xmppServiceDomain'[SMACK-666] - Typo in 'RosterEntries.rosterEntires()', change to 'RosterEntries.rosterEntries()'[SMACK-703] - Limit the stored presences of entities not in Roster[SMACK-704] - Pass down Message stanza in ChatStateListener[SMACK-711] - Improve the logging of TCP connection attempts.[SMACK-720] - Improve support for Tor and Hidden Services.[SMACK-721] - Report illegal Stream Management states to avoid OOM Exception[SMACK-727] - Add partial support for the IoT XEPs (XEP-0323, -0324, -0325, -0347)[SMACK-733] - Handle outgoing 'unavailable' Presences in Roster[SMACK-736] - Add support for Chat Markers (XEP-0333)[SMACK-737] - Add support for Bits of Binary (XEP-0231)[SMACK-738] - Add support for Push Notifications (XEP-0357卡塔尔(قطر下载地址下载地址点此步向：
XEP-0172: User NickName, 顾客别名，以XMPP参与订阅乞请或是XMPP音信来通讯顾客小名音讯。
Ejabberd 2.1.2揭橥了！Ejabberd是一款开源免费的Jabber/XMPP服务器，选用ErLang编写，具备跨平台的力量，扶植Linux,window,Unix等种种阳台，基于GPL v2许可发布。
XEP-0082: XMPP Date and Time Profiles,制订日期、时间的格式标准。
XEP-0115: Entity Capabilities, 广播和动态开采客商端、设备或通用的实业体量，以使最小化互联网影响，传输体制是专门的工作的XMPP加入广播。
Java is a general purpose, object-oriented programming language developed by Sun Microsystems. Although originally developed for client-side applications, it is also quite popular in servers and general applications. Its two main libraries are:
The Jabber Stream Objects (JSO) library is a solid implementation that is mainly used for component and server development. It includes low-level support for Jabber/XMPP protocol elements, as well as a fully controllable stream connection interface, with the goal of providing a highly customizable and flexible platform for building Jabber-based applications. License: LGPL. Website: .
Smack is a very popular, full-featured library for writing clients, bots, and other applications. It was produced by the same developers who created the Openfire server and the Spark client. License: Apache. Website: http://www.igniterealtime.org/projects/smack/.
Core Close sessions that were half connectedFix SASL PLAIN authentication message for RFC4616 complianceFix support for old Erlang/OTP R10 and R11Return proper error (not 'conflict') when register is forbidden by ACLWhen ejabberd stops, send stream close to clientsejabberdctl Check for EGID in ejabberdctl commandCommand to stop ejabberd informing users, with grace periodIf there's a problem in config file, display config lines and stop nodeMUC Kick occupants with reason when room is stopped due to MUC shutdownWrite in room log when a room is created, destroyed, started, stoppedPubSub and PEP Don't call gen_server on internal event (improves performance and scalability)Fix duplicate SHIM header in Pubsub messageNotification messages of Pubsub node config change contained a SHIM headerSubID SHIM header missing in Pubsub message with multiple subscriptions on the same nodePEP: last published item not sent from unavailable users when the subscription is implicit (XEP-0115)pep_mapping not working due to Node type mismatchWebAdmin If big offline message queue, show only subset on WebAdminSupport in user list page of WebAdmin when mod_offline is disabled
C# is a simple, modern, general-purpose, object-oriented programming language developed by Microsoft. With a syntax heavily influenced by C++, Delphi, and Java, as well as broad support in Windows tools and the .NET Framework, C# has become a popular choice for many developers. The following are the primary open source libraries:
agsXMPP is an SDK that can be used for client, component, and server development. License: GPL/Commercial. Website: .
The jabber-net library provides a set of .NET controls for sending and receiving XMPP data. It includes support for client connections, server components, presence, service discovery, and other XMPP primitives. License: LGPL. Website: .
agsXMPP is a SDK / library for the eXtensibleMessaging and Presence Protocol (XMPP) protocol written in managed C# dedicated to .NET and Mono technologies. The SDK is released as open source under a dual license.
Our SDK could be used for XMPP client, server and component development.
MatriX is the successor of the agsXMPP library. For commercial projects we recommend to use MatriX.
Jabber/XMPP(Extensible Messaging and Presence Protocol卡塔尔国首要用于即时通讯，Gtalk便是运用Jabber/XMPP左券开采的。基于 Jabber/XMPP协议通讯供给劳务器端和客商端，ejabberd正是当作Jabber/XMPP的服务端，而相比较显赫的Jabber客商端有 pidgin,spark(java版本的客户端卡塔尔(قطر等。
Server components / Plugin
Component Developer Guide
XMPP Components enhance the functionality of an XMPP domain. They receive all stanzas that are addressed to a particular subdomain of the XMPP domain. Two types of components are identified: "internal components" run within the server software and typically have direct access to the server software API. "External components" on the other hand run outside of the server software and connect to the XMPP domain over a network protocol.
XEP-0045: MULTI-User Chat, 通过房间、channel 或 与Internet Relay Chat(IRC卡塔尔像相通格局来贯彻XMPP 多客户之间沟通新闻，除了专门的学业的聊天室作用(主题、诚邀State of Qatar，该合同还包蕴踢人、禁绝user、房间命名、内定口令分子才可加入房间等作用。
Smack is a client library. You can use it to log into an XMPP domain and make use of the functionality it provides. Typically, Smack is used to implement a instant messaging client.
Tinder is a low-level XMPP library. It provides Java implementations of basic XMPP entities, such as Stanzas (called 'Packet' in XMPP), JIDs and Components (which typically implement part of the functionality of an XMPP server). Although in theory, Tinder could be used to implement client functionality, it currently is primarily used on the server-side. Both Whack and Openfire (an XMPP server implementation) use Tinder-defined entities. Smack does not use Tinder at all.
Whack is Java library that is used to implement external components. Whack allows a Component (as defined in Tinder) to run as a stand-alone process. Whack allows you to connect this process to an XMPP domain. This way, you can extend the functionality provided by that domain without modifying the implementation of the server software.
Whack is for external component development. Although the component code is in Tinder, the means to externalize the component so it runs in its own process is here.
Tinder is a base set of XMPP classes used by Whack and Openfire. It contains the code needed for component development.
Smack is for client development.
The XMPP4GWT library is created by the producers of the Tigase XMPP server and uses the Google Web Toolkit (GWT) framework. License: GPLv3. Website: http://www.tigase.org/en/project/xmpp4gwt.
The xmpp4js library is used in the Soashable web-based messenger. It has been heavily tested and has a strong emphasis on reusability and extensibility. License: LGPL. Website: .
IQ, Message, & Presence：
xmpp the definitive guide building real time applications with jabber technologies
XEP-0066: Out of Band Data,定义了2个扩张左券用于UEnclaveI的通讯，其一是XMPP中的音讯体的选取，其余三个是通过XMPP IQ体来组织的倡议-响应人机联作，除却还应该有能够让一个实体告知此外八个实体:以HTTP UTucsonL钦点的这么些文件是或不是行得通。
XEP-0308: Last Message Correction，
2State of Qatar. 加多代理
XMPP Framework大意分为2部分：Core 和 扩充。
XEP-0100: Gateway Interaction,概念客商端与经过代理网关到IM服务的顾客端之间的相互作用完结。
XEP-0106: JID Escaping,能够使得正规境况下不可能在本地显示的有些字符(如空格好、双引号等卡塔尔的JID能够健康展现。该机制也可用于将非XMPP地址翻译成XMPP语法。
XEP-0092: Software Version, 提供使用的版本和平运动转条件的操作系统。
3卡塔尔. 援救的最低版本是iOS 8.0 / macOS 10.9 / tvOS 9.0.
XEP-0384: OMEMO Encryption