Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

XEP-0045: Presences and messages arriving out of order; clients can interpret room join as complete before all <presence/>s landed #169

Open
ivucica opened this issue Sep 28, 2020 · 0 comments

Comments

@ivucica
Copy link

ivucica commented Sep 28, 2020

Actors:

This is the traffic received, anonymized and shortened, mildly formatted (note, all of this is listed under one RECV:):

<presence to='[email protected]/abcd-go' from='#[email protected]/_joe'>
  <x xmlns='http://jabber.org/protocol/muc#user'>
    <item jid='[email protected]' affiliation='none' role='participant'/>
  </x>
</presence>

<presence to='[email protected]/abcd-go' from='#[email protected]/abc'>
  <x xmlns='http://jabber.org/protocol/muc#user'>
    <status code='110'/>
    <item jid='[email protected]/[email protected]' affiliation='none' role='participant'/>
  </x>
</presence>

<message type='groupchat' to='[email protected]/abcd-go' from='#[email protected]/PersonSettingSubject'>
  <subject>this is some subject</subject>
</message>

However, the very first packet landing into HandlePacket is the <message/>. Per XEP-0045, a <message/> with no <body/> [empty not being a good replacement] and containing a mandatory <subject/> [which may be empty; see also https://github.com//issues/167] means that the room join is complete.

Yet, none of the <presence/>s have been seen at this point.

Inability to distinguish between empty and not-present body and subject #167 and delivery of <message/> and <presence/> out of order means it's not possible to know which users were already present in the room and which entered later, despite XEP-0045 allowing for this scenario.

This is on ac5b066 from May 7 2020, currently the latest commit.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant