Not logged in. · Lost password · Register
Forum: MatriX and XmppDotNet RSS
Avatar
mwaqas #1
Member since Mar 2012 · 10 posts · Location: Finland
Group memberships: Members
Show profile · Link to this post
Subject: How to make sure that a message has been really sent to server
Hello,
I see that event 'OnSendXml' generated just before sending any xml. Is there any other way that we become sure that xml has really sent to server? or is there there any way that we are able to find out that an xml sending has been failed? In addition can we get that xml again which Matrix has failed to send to server?

Thanks in advance for your reply

-Waqas
Avatar
Alex #2
Member since Feb 2003 · 4449 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
OnSendXml is only for debugging purposes, to see the Xml which is passing the wire. This is also not identical to the bytes which pass the socket. Especially when encryption is evolved.

There is currently nothing in MatriX which tells you whether the Send succeeded or failed. It's on our TODO list because some users asked for it, but in most cases it doesn't help you at all which is the reason why we have not implemented it yet.

In contrary to UDP, TCP was considered as reliable transport for a while. Today we know this is wrong under many conditions, and especially in mobile networks. So even when the socket tells MatriX the packet went out over TCP without any errors, and we forward this this to you, you cannot rely on it.

You have hops (at least client => server => client) and processing in XMPP. So even when the packet went out on your mobile it can still fail on the server while receiving or parsing. When it passes the server it can still fail during the delivery to client 2, and there it can still fail when client 2 received it during the processing.

Over the years the XMPP community has developed multiple extensions to solve all this problems. There are extensions for different levels and use cases. When you tell us your exact requirements and on which level you need reliability I can make a suggestion.
Some of these extensions are endpoint to endpoint and require no server support. Other require support for this in the client and server software.

Here is a list of some of the extensions:
Avatar
mwaqas #3
Member since Mar 2012 · 10 posts · Location: Finland
Group memberships: Members
Show profile · Link to this post
Thank you Alex. Your answer made things clearer for us.
Avatar
Alex #4
Member since Feb 2003 · 4449 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Quote by mwaqas on 2013-06-27, 09:53:
1372319601

no problem. All of  this XEPS are supported by MatriX. I have also uploaded new binary builds with XEP-0079: Advanced Message Processing support.
Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters: