MatriX XMPP SDK

XmppDotNet is the successor of the MatriX SDK.

We strongly recommend to use XmppDotNet for all new development.

Go to the XmppDotNet website or the GitHub page of XmppDotNet.

MatriX is a SDK / library for the eXtensible Messaging and Presence Protocol (XMPP, also known as Jabber) written in managed C# dedicated to .NET and Silverlight technologies.

MatriX is available for the full .NET Framework, .NET Compact Framework and Silverlight. This allows you to reuse all your existing code on all major .NET platforms.

Here is a small example how easy you can login to a XMPP server and send a simple chat-message to another user in only 3 lines of code:

 // basic send message example
var xmppClient = new XmppClient {XmppDomain = "jabber.org", Username = "user1", Password = "secret"};
xmppClient.OnRosterEnd += delegate {xmppClient.Send(new Message {To = "user2@jabber.org", Type = MessageType.chat, Body = "Hello World"});};
xmppClient.Open();

Trial version

Features:

  • fully compatible with RFC 3920, 3921, 6120, 6121
  • cross platform
  • Multi OS (Windows, Linux, Mac…)
  • for client, server and web applications
  • fast and lightweight
  • easy to use

XMPP Features:

  • Encryption (TLS)
  • SASL
    • PLAIN
    • DIGEST-MD5
    • NTLM
    • GSSAPI
    • EXTERNAL
    • SCRAM-SHA1
    • Google X-Token
    • X-FACEBOOK-PLATFORM
    • X-MESSENGER-OAUTH2 (Microsoft OAuth)
    • X-OAUTH2 (Google OAuth2)
    • CISCO-VTG-TOKEN
  • Roster
  • Presence
  • Message
  • Single Sign On (SSO, NTLM, GSSAPI, Kerberos)

Supported XMPP extensions

XEP numberprotocol name
XEP-0004Data Forms
XEP-0009Jabber-RPC (XML-RPC)
XEP-0012Last Activity
XEP-0030Service Discovery
XEP-0033Extended Stanza Addressing
XEP-0045Multi-User Chat
XEP-0047In-Band Bytestreams
XEP-0048Bookmarks
XEP-0049Private XML Storage
XEP-0052File Transfer
XEP-0054vcard-temp
XEP-0055Jabber Search
XEP-0059Result Set Management
XEP-0060Publish Subscribe
XEP-0066Out of Band Data
XEP-0071XHTML-IM (formatted messages)
XEP-0078Non-SASL Authentication
XEP-0079Advanced Message Processing
XEP-0080User Location
XEP-0085Chat State Notifications
XEP-0092 Software Version
XEP-0096SI File Transfer
XEP-0100Gateway Interaction
XEP-0107User Mood
XEP-0114Jabber Component Protocol
XEP-0115Entity Capabilities
XEP-0118User Tune
XEP-0124BOSH
XEP-0136Message Archiving
XEP-0138Stream Compression
XEP-0144Roster Item Exchange
XEP-0166Jingle
XEP-0167Jingle RTP Sessions
XEP-0172User Nickname
XEP-0176Jingle ICE-UDP Transport Method
XEP-0177Jingle Raw UDP Transport Method
XEP-0184Message Delivery Receipts
XEP-0191Blocking Command
XEP-0198Stream Management
XEP-0199XMPP Ping
XEP-0224Attention
XEP-0237Roster Versioning
XEP-0249Direct MUC Invitations
XEP-0258Security Labels
XEP-0280Message Carbons
… and more …

Due to restrictions of different .NET Runtimes and OS platforms the features listed here can vary in different MatriX editions.