Introducing MatriX vNext

We are thrilled to announce the next generation of the MatriX XMPP libraries. 15 years elapsed already since we started our first .NET/c# XMPP library agsXMPP with .NET 1.0. Our XMPP libraries and the .NET technologies had many major evolutions over the years. With the switch to .Net Core we also took the opportunity for a major rewrite and redesign of the codebase. The API for clients, servers and components is not backwards compatible, but all XMPP protocol classes remain the same. Updating existing code bases to MatriX vNext should be pretty straightforward. Some highlights new software design and more modern API target .Net Core high performance sockets using Azure DotNetty Completly Task based using the TAP pattern (async/await) more Linq extensions Rx (Reactive Extensions) will be open source and available under a dual license (Open Source and commercial) Here is some demo client code using MatriX vNext: var xmppClient = new XmppClient { Username = alex , Password = secret , XmppDomain = server.com , }; xmppClient .XmppXElementStream .Where(el => el.OfType<Presence>()) .Subscribe(el => { // Handle incoming presence Debug.WriteLine(el.Cast<Presence>().From); }); xmppClient .XmppXElementStream .Where(el => el.OfType<Message>()) .Subscribe(el => { // Handle incoming messages Debug.WriteLine(el.Cast<Message>().Body); }); xmppClient .XmppXElementStream .Where(el => el.OfType<Iq> && el.Cast<T>().Type == IqType.Get && el.Cast<T>().Query.OfType<Ping>() .Subscribe(el => { // handle and reply to incoming pings var iq = xmppXElement.Cast<T>(); var resIq = Factory.GetElement<T>(); resIq.Id = iq.Id; resIq.To = iq.From; resIq.Type = IqType.Result; await xmppClient.SendAsync(resIq); }); // connect, secure, authenticate and bind await xmppClient.ConnectAsync(); // request roster (contact list) var roster = await xmppClient.RequestRosterAsync(); // send own presence to the server xmppClient.SendPresenceAsync(Show.Chat, free for Chat ); Releases are available as a Nuget packages here: https://www.nuget.org/packages/Matrix.vNext

zum Artikel gehen

MatriX vNext 2.0 released

we are thrilled to announce MatriX vNext 2.0 main changes in 2.0 are: minor API changes which force major version bump (semver) Direct TLS support (XEP-0368) netstandard 2.0 support new NameResolver wich allows to specify IP addresses of the XM

zum Artikel gehen

XmppDotNet announcement

I want to announce the availability of the XmppDotNet XMPP library. XmppDotNet is the new name and next generation of our MatriX vNext XMPP library. Why changing the name? It was never intended to keep vNext in the name forever. And there is a lot

zum Artikel gehen

XMPP websocket connection manager

For a new project I am working on (more to be announced) I was looking for a standalone websocket connection manager. Because still many public and private XMPP servers offer only the TCP transport or BOSH. There are already existing projects webso

zum Artikel gehen

MatriX vNext development update

There has not been a major release of the MatriX XMPP library for some month. I am working hard on the next major update and want to give a small summary on whats coming. There are some huge changes in the latest .NET releases. The effort to combin

zum Artikel gehen

Simpler code in handlers using pattern matching

The pattern matching feature which came with c# 7 can be very useful when writing XMPP stanza handlers with MatriX. The MatriX vNext handlers are using predicates to filter and match stanzas. Sometimes the predicates can get very complex and would

zum Artikel gehen