Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
@pazznetwork/xmpp-adapter
Advanced tools
Xmpp stands for "Extensible Messaging and Presence Protocol" and was called in the past Jabber, that is the reason why there are so many references to jabber instead of xmpp.
Xmpp connects over BOSH (Bidirectional-streams Over Synchronous HTTP) which means that 2 HTTP connection will be kept open which sends stanzas (XML payloads) to the server in the first and gets them in the second one. Xmpp can now be implemented with Websocket except secure reconnections, discovery and other specific technical expectations.
In general the xmpp design choices can be better understood if you imagine trying to make a chat out of email. Therefore, there a specifications for the case of multi-user clients on a device, multi device users, multi device users on multiple servers which all support or can support different sets of features while also the same client can offer the user multiple different sets of features to support.
The goal of the authentication as well the communication line encryption tries always to be as simple and secure as possible as-well as supporting all versions and iterations of the specifications dedicated to it.
As the clients struggled with a high amount of complexity for many users the complexity was pushed slowly back to the specifications also different specifications sets. Modern clients should orient themselves on the compliance for the XMPP IM (instant messaging) client and look for the extended protocols. See: https://xmpp.org/extensions/xep-0443.html#im and https://xmpp.org/extensions/xep-0369.html the MIX specification making it possible to skip the previous implementations.
TODO MORE:
Every user can write to any other user as long they know or have their jid, guessed of from a shared room. A user can be blocked or added to your contacts. An add to the contacts is a subscription to as users presence which will be broadcast by him when he logs in. When a user added you to your contacts you can also add them which creates a bidirectional subscriptions.
The add, remove and block are managed by the rooster spec and block spec which manage contact and block lists of a user.
There is always the case of the user writing without sending a contact request which leads to the need to also analyse the received messages by the user to visualize all contacts.
In the core specification messages arrive to a user only when he is online and only to the specific client and specific device and are only kept in one session. For managing offline messages and the message history the Message Archive Management shorted to MAM was added.
When a server supports this feature
Other Message Features other Chat Clients offer and are in specification process:
To establish a stable connection the implementation of the ping specification is necessary to avoid timeouts if there are no actions performed on the connections. To have proper timeouts on requests there is the need for the ack specifications which checks regular if a set amount of requests was answered and makes a reconnections possible on the last set of packages.
XEP-0004 Used in publish-subscribe, message-archive or multi-user-chat.
XEP-0033 Used to send one message to several JIDs at the same time and to forward messages.
XEP | Version | Status | Name | Plugins | Notes |
---|---|---|---|---|---|
XEP-0045 | 1.31.2 | Partial | Multi-user chat rooms | multi-user-chat | All basics stuff is supported. Also, some more advanced features like invitations, creation of rooms, etc. |
XEP-0048 | 1.1 | Partial | Bookmarks | bookmark | |
XEP-0049 | 1.2 | Discuss | Private XML Storage | For bookmark storage and meta contacts. | |
XEP-0050 | 1.2 | Discuss | Ad-Hoc Commands | ||
XEP-0054 | 1.2 | Discuss | VCard-temp | ||
XEP-0055 | 1.3 | Discuss | Jabber Search | ||
XEP-0059 | 1.0 | Partial | Result Set Management | message-archive | Used by XEP-0313. |
XEP-0060 | 1.13 | Partial | Publish-Subscribe | publish-subscribe | |
XEP-0065 | 1.8 | Discuss | SOCKS5 Bytestreams | ||
XEP-0066 | 1.5 | Planned | Out of Band Data | Support for URLs in messages. | |
XEP-0070 | 1.0 | Discuss | Verifying HTTP Requests via XMPP | ||
XEP-0071 | 1.4 | Discuss | XHTML-IM | ||
XEP-0077 | 2.4 | Partial | In-band registration | registration | |
XEP-0083 | 1.0 | Discuss | Nested Roster Groups | ||
XEP-0084 | 1.1.1 | Discuss | User Avatar | ||
XEP-0085 | 2.1 | Discuss | Chat State Notifications | ||
XEP-0095 | 1.1 | Discuss | Stream Initiation | ||
XEP-0107 | 1.2 | Discuss | User Mood | ||
XEP-0108 | 1.3 | Discuss | User Activity | ||
XEP-0115 | 1.5 | Partial | Entity Capabilities | roster | |
XEP-0118 | 1.2 | Discuss | User Tune | ||
XEP-0144 | 1.1.1 | Discuss | Roster Item Exchange | Makes sharing of roster contacts possible | |
XEP-0145 | 1.0 | Discuss | Annotations | Notes for contacts | |
XEP-0146 | 1.0 | Discuss | Remote Controlling Clients | ||
XEP-0153 | 1.0 | Discuss | vCard-Based Avatars | ||
XEP-0157 | 1.1.0 | Discuss | Contact Addresses for XMPP Services | ||
XEP-0158 | 1.0 | Discuss | CAPTCHA Forms | Images only. | |
XEP-0163 | 1.2 | Partial | Personal Eventing Protocol | publish-subscribe, message-archive | |
XEP-0166 | 1.1.2 | Discuss | Jingle | ||
XEP-0172 | 1.0 | Discuss | User Nickname | ||
XEP-0184 | 1.2 | Discuss | Message Receipt | Message was read notification | |
XEP-0191 | 1.3 | Partial | Blocking Command | block | Implemented instead of XEP-0016 |
XEP-0198 | 1.6 | Partial | Stream Management | foreign:xmpp/stream-management | Automatically responds to acks but does not support requesting acks yet. |
XEP-0199 | 2.0 | Partial | XMPP Ping | ping | |
XEP-0200 | 0.2 | Discuss | Stanza Encryption | ||
XEP-0202 | 2.0 | Partial | Entity Time | entity-time | |
XEP-0203 | 2.0 | Discuss | Delayed Delivery | ||
XEP-0209 | 0.1 | Discuss | Metacontacts | ||
XEP-0221 | 1.0 | Discuss | Data Forms Media Element | ||
XEP-0222 | 1.0 | Discuss | Persistent Storage of Public Data via PubSub | ||
XEP-0223 | 1.1 | Discuss | Persistent Storage of Private Data via PubSub | ||
XEP-0224 | 1.0 | Discuss | Attention | ||
XEP-0231 | 1.0 | Discuss | Bits of Binary | ||
XEP-0234 | 0.17.1 | Discuss | Jingle File Transfer | ||
XEP-0237 | 1.2 | Discuss | Roster Versioning | ||
XEP-0245 | 1.0 | Discuss | The /me Command | ||
XEP-0249 | 1.2 | Discuss | Direct MUC Invitations | ||
XEP-0258 | 1.1.1 | Discuss | Security Labels in XMPP | ||
XEP-0260 | 1.0.3 | Discuss | Jingle SOCKS5 Bytestreams Transport Method | ||
XEP-0261 | 1.0 | Discuss | Jingle In-Band Bytestreams Transport Method | ||
XEP-0280 | 0.12.0 | Partial | Message Carbons | message-carbons | Without implementing §6.1 |
XEP-0284 | 0.1.3 | Discuss | Shared XML Editing | ||
XEP-0292 | 0.11 | Discuss | vCard4 Over XMPP | ||
XEP-0297 | 0.3 | Partial | Stanza Forwarding | message-carbons | Supported only for XEP-0313/xep-0280. |
XEP-0300 | 1.0.0 | Discuss | Use of Cryptographic Hash Functions in XMPP | ||
XEP-0306 | 0.2.1 | Discuss | Extensible Status Conditions for Multi-User Chat | ||
XEP-0308 | 1.0 | Discuss | Last Message Correction | ||
XEP-0313 | 0.6.3 | Partial | Message Archive Management | message-archive | Makes message history for users |
XEP-0316 | 0.1 | Discuss | MUC Eventing protocol | ||
XEP-0317 | 0.1 | Discuss | Hats | ||
XEP-0319 | 1.0.2 | Discuss | Last User Interaction in Presence | ||
XEP-0333 | 0.4 | Discuss | Chat Markers | ||
XEP-0334 | 0.3.0 | Discuss | Message Processing Hints | ||
XEP-0352 | 1.0.0 | Discuss | Client State Indication | ||
XEP-0357 | 0.4.1 | Partial | Push Notifications | push | |
XEP-0359 | 0.6.1 | Partial | Unique and Stable Stanza IDs | message-uid | |
XEP-0363 | 1.0.0 | Partial | HTTP File Upload | http-file-upload | |
XEP-0368 | 1.1.0 | Partial | SRV records for XMPP over TLS | foreign:xmpp/resolve | |
XEP-0372 | 0.5.0 | Discuss | References | ||
XEP-0373 | 0.4.0 | Discuss | OpenPGP plugin. | ||
XEP-0377 | 0.3 | Discuss | Spam Reporting | ||
XEP-0380 | 0.3.0 | Discuss | Explicit Message Encryption | ||
XEP-0382 | 0.2.0 | Discuss | Spoiler messages | ||
XEP-0384 | 0.7.0 | Discuss | OMEMO Encryption | ||
XEP-0392 | 0.7.0 | Discuss | Consistent Color Generation | ||
XEP-0393 | 1.1.1 | Discuss | Message Styling | ||
XEP-0398 | 0.2.1 | Discuss | User Avatar to vCard-Based Avatars Conversion | ||
XEP-0411 | 1.0.0 | Discuss | Bookmarks Conversion | ||
XEP-0422 | 0.2.0 | Discuss | Message Fastening | ||
XEP-0424 | 0.3.0 | Discuss | Message Retractions | ||
XEP-0425 | 0.2.1 | Discuss | Message Moderation | ||
XEP-0437 | 0.2.0 | Discuss | Room Activity Indicators | ||
XEP-0441 | 0.2.0 | Discuss | Message Archive Management Preferences | ||
XEP-0453 | 0.1.0 | Discuss | DOAP usage in XMPP | ||
XEP-0453 | 0.1.0 | Discuss | OMEMO Media sharing |
Plugins | Core XEP | Relevant XEPs | Function | Notes |
---|---|---|---|---|
block | XEP-0191 | Blocking contact | ||
bookmark | XEP-0048 | Storing Stanzas for later actions | ||
entity-time | XEP-0202 | Message Timestamps | ||
http-file-upload | XEP-0363 | File upload | ||
message | RFC 6120 | Messaging Core | ||
message-archive | XEP-0313 | XEP-0004, XEP-0059, XEP-0163 | Message History | |
message-carbons | XEP-0280 | XEP-0297 | Message Multidevice Sync | |
message-state | CUSTOM | XEP-0184 | Custom Message Read | |
message-uuid | XEP-0359 | Unique | ||
muc-sub | Ejabberd | Chat Room Notifications | ||
multi-user-chat | XEP-0045 | XEP-0004 | Chat Rooms | |
ping | XEP-0199 | Checks connections | ||
publish-subscribe | XEP-0060 | XEP-0004, XEP-0163 | Publish und Subscribe between Nodes with IQ | |
push | XEP-0357 | Inform about message when offline | ||
registration | XEP-0077 | Registration without Admin | ||
roster | XEP-0115 | List of contacts | ||
service-discovery | XEP-0030 | XEP-0163 | Check for provided Services (XEP's) by server | |
unread-message-count | CUSTOM | Count unread messages |
FAQs
## General
We found that @pazznetwork/xmpp-adapter demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.