Not logged in. · Lost password · Register
Forum: agsXMPP RSS
Avatar
bilalkhan #1
Member since Oct 2016 · 81 posts · Location: Pakistan
Group memberships: Members
Show profile · Link to this post
Subject: Does agsxmpp support xep 0198
Does agsxmpp support xep 0198?


http://stackoverflow.com/questions/29287942/how-to-use-xep…

Client implemt xep 0198 using agsxmpp?
Avatar
Alex #2
Member since Feb 2003 · 4327 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
no, you have to implement this yourself into agsXMPP, or use MatriX which supports it.

Alex
Avatar
bilalkhan #3
Member since Oct 2016 · 81 posts · Location: Pakistan
Group memberships: Members
Show profile · Link to this post
Thanks
Avatar
bilalkhan #4
Member since Oct 2016 · 81 posts · Location: Pakistan
Group memberships: Members
Show profile · Link to this post
currently, am implementing xep 0198 using agsxmpp, am not getting the correct value of h from the client side, as xep mention client will send the ack with id provided by the server?

when ever a request is found immediately send the response with incremented id, however am expecting the client will send me the a and r element however am not getting the a element in response?

  1. <a xmlns="urn:xmpp:sm:3" h="17" />

  1. private void ProcessStreamRequest(StreamRequest streamRequest)
  2. {
  3.     //Example 3.Server enables stream management
  4.     //Send(new StreamEnable());
  5.  
  6.     //Example 4. Server enables stream management with session resumption
  7.     incomingStanzaCount++;
  8.     Send(new StreamAnswer() {LastIncomingStanzaId= incomingStanzaCount});
  9.     //Send(streamRequest);
  10. }

in response of the client am only receiving the r element in the stanza? xep 0198 mention that the client will send the a element along with r?

what am doing wrong?


order of the code is
  1. else if (e.GetType() == typeof(StreamEnable))
  2. {
  3.     if (e != null)
  4.     {
  5.         ProcessStreamManagment(e as StreamEnable);
  6.     }
  7. }
  8. else if (e.GetType()== typeof(StreamRequest))
  9. {
  10.     if (e !=null)
  11.     {
  12.         ProcessStreamRequest(e as StreamRequest);
  13.     }
  14. }
  15. else if (e.GetType() == typeof(StreamAnswer))
  16. {
  17.     if (e != null)
  18.     {
  19.        // ProcessStreamRequest(e as StreamRequest);
  20.     }
  21. }
This post was edited on 2017-03-01, 10:06 by Alex.
Avatar
Alex #5
Member since Feb 2003 · 4327 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
I think there is a misunderstanding on how it works.

  • When Stream Management gets enabled the client and the server start counting incoming and outgoing stanzas.
  • Then at any time  each party can request (<r/>) the count from the other party.
  • When the reported count (<a/>) does not match this means stanzas were lost
  • Its up to the client or server on how often they request acks. Could be on every stanza, after X amount of stanzas, timer based etc...

Alex
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:
Forum: agsXMPP RSS