XEP-0198: Stream Management - feature request


It would be nice to see support for XEP-0198 in SMACK.

XEP-0198 is meant for stanza acknowledgement and restoration of broken sessions. This is essential for mobile clients to cope with network disconnects and changes between Wi-Fi and 3G on smartphones.

XEP-0198 has been promoted to draft standard recently, so it seems very reasonable to implement it

Kind regards,


1 Like


Would be nice to hear any news on this topic. Could someone please create an issue at least?



Done. Added as SMACK-333.

1 Like

[moving discussion back from SMACK-333]

I am interested in writing some code for this. As I read the standard, it requires access to someinternals of XMPPConnection, like counting the incoming and outgoingstanzas and keeping a list of the unacknowledged ones that have beensent and might need retransmission.

Should this be implemented inside of XMPPConnection or as anexternal module, creating additional interfaces when the existing onesare insufficient? Maybe even by subclassing XMPPConnection?

Can’t really say without looking at the spec myself.

I believe that it would probably be done withing the XMPP connection, as you would need to discover whether the server being connected to supports such a feature and turn it on if it does.

This is pure speculation on my part though.

Why not simply add an StreamManagementManager as Member to the XMPPConnection that holds all the infromation required for XEP-0198 (In/Out Count for Client and Server, etc.). This would be my first naive aproach.

It would be nice if you could have a look at the spec, so you can advise us.

I think an implementation integrated within XMPPConnection would fit the purpose very well. If you have no objections making the class bigger, this is for sure the way to go. I was just speculating from the rather modular architecture of SMACK that you might prefer a plug-in solution, which would probably heavily rely on callback mechanisms.