XEP-0198: Stream Management #281

Closed
ObjColumnist opened this Issue Dec 10, 2013 · 18 comments

Comments

Projects
None yet
8 participants
Collaborator

ObjColumnist commented Dec 10, 2013

No description provided.

ObjColumnist was assigned Dec 10, 2013

I was finish this feature, could I share my codes ? ObjColumnist

Collaborator

ObjColumnist commented Dec 18, 2013

Ive started to work on this, but your welcome to send me what you have done.

Hi ObjColumnist,
Here is my code https://www.dropbox.com/s/ordvupngu9xmdne/XMPP-0198.zip
I'm working on ccPing project at http://ccping.com, we have implemented this XEP.
I really like this framework, I hope you release this extension soon
Thanks,

Collaborator

ObjColumnist commented Dec 19, 2013

Thanks I will take a look :)

I have a rather immediate need to implement XEP-0198 into my current project. Is there a way to be included in the development/implementation of this protocol into this framework? I would be very interested in contributing. Thanks!

To be specific, I've dropped in nguyenthanhhai's code for XEP-0198 into my project, but the latest revision is missing a required XMPPMessageAdditions.h and supporting code. At the very least, is it possible to receive a copy of these required files? Thanks again.

Thank you very much!

-=Kevin

On Fri, Mar 7, 2014 at 11:00 AM, NeXT Steve notifications@github.comwrote:

@kpinkerman https://github.com/kpinkerman ,
Let's use this code
https://www.dropbox.com/s/kkz63co8zu75581/XMPP-0198.zip
It's does not require XMPPMessageAddition.
Regards,

Reply to this email directly or view it on GitHubhttps://github.com/robbiehanson/XMPPFramework/issues/281#issuecomment-37037421
.

I've implemented the code, which compiles properly and my original code
works fine. To confirm usage of this protocol, do I simply need to
instantiate the XMPPStreanManagement object and enable:enumACKMode_both
after a successful XMPPStream connectWithTimeout? Does it manage the
messages in the stream or do I need to create handlers for miscommunication
states?

Thanks again for making this available to me.

-=Kevin

On Fri, Mar 7, 2014 at 11:01 AM, Kevin Pinkerman kpinkerman@gmail.comwrote:

Thank you very much!

-=Kevin

On Fri, Mar 7, 2014 at 11:00 AM, NeXT Steve notifications@github.comwrote:

@kpinkerman https://github.com/kpinkerman ,
Let's use this code
https://www.dropbox.com/s/kkz63co8zu75581/XMPP-0198.zip
It's does not require XMPPMessageAddition.
Regards,

Reply to this email directly or view it on GitHubhttps://github.com/robbiehanson/XMPPFramework/issues/281#issuecomment-37037421
.

Let's implement two methods:

  • (void)streamManagementEnableFailed:(XMPPStreanManagement*)sender;
  • (void)streamManagement:(XMPPStreanManagement_)sender didRecivedACKForMessage:(XMPPMessage_)message;

XMPPStreanManagement does not manage the message in the stream but you can track the message sending/receiving statge to resend failed message or devivered messages.

After working with this a bit more, I've noticed that my Tigase server is now successfully showing data packets. I am noticing, though, that it is using namespace "urn:ccping:sm" when I activate stream management instead of the expected namespace "urn:xmpp:sm:3". Am I getting the setup wrong on this?

I think I've found the issue. It looks like the stream management protocol listed here is for a custom implementation of stream management. I'm going to change the urn to the standard protocol naming convention and reattempt.

OK. I have been able to get the server to enable stream management, but r & a elements are not being sent/received by this library. I am currently using sendElement: from the XMPPStream object. Is there a different function to enable the req/ack process? In case I have set up streamMangagement wrong, I have included my current setup:

    self.xmppStream = [[XMPPStream alloc] init];
    self.xmppSM = [[XMPPStreanManagement alloc] init];
    [self.xmppStream registerModule:self.xmppSM];
    [self.xmppSM activate:self.xmppStream];

Whatever help you can provide would be greatly appreciated.

Any idea why the req/ack process is not working in this implementation? Thank you.

Contributor

vitalyster commented Mar 25, 2014

#342 check my implementation and give some code review

robbiehanson added the started label Jul 3, 2014

Owner

robbiehanson commented Jul 30, 2014

I just pushed commit 29dc0ff "Initial support for XEP-0198 (stream management)"

I can't find the way to alternate "bind" to "session resume"

I added XMPPCustomBinding protocol, which now allows for this outside of XMPPStream.
Take a look at XMPPStreamManagement.h:
https://github.com/robbiehanson/XMPPFramework/blob/master/Extensions/XEP-0198/XMPPStreamManagement.h

I hope you'll be pleasantly surprised with the API.

Contributor

max-potapov commented Jul 31, 2014

Great! Thank you so much!

Are there any milestones for this? XEP-0198 is currently not supported as evident from the supported extensions page. Any realistic date for when this will be supported? Thanks!

Hi , is there any way to enable XEP-0198 in ejabberd version 2.1.10?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment