On Wed, Dec 2, 2009 at 1:20 AM, Karthik Kailash <[email protected] > wrote:
> Ah, I see. So: > > > > (1) would help with the case where the user exits the room, but somehow the > presence is not propagated to the MUC (s2s problems). This seems like it > would take some support on the spec level, right, because the client needs > to know to only respond to the ping message if they are still IN the actual > room – so using something like XEP-0199 would not work, because there are no > conditions on when a client should respond. > > Correct. A ping can't detect a client which has reconnected, but it can detect a resource which isn't reachable for some time. Unfortunately, some clients don't support XEP-199 pings at all... A more proper approach would be sending presence probes (but these may have their own implementation dependent quirks, which I haven't tested). I'm not aware of any implementations using pings to detect ghosts in MUC, though this has been discussed on the mailing lists. > (2) is for the case where the user’s domain server goes down or the user is > offline on their server but the MUC is not notified. Then, any time a > message from the room is routed to that user, if it receives an XMPP error, > it knows that the user is no longer available. But, if the user’s server > supports offline message storage, this would not work, right? I guess in > this case pinging the user periodically as in (1) comes into play.4 > > > MUC broadcast messages do not go into offline storage: "For a message stanza of type "groupchat", the server MUST return a stanza error to the sender, which SHOULD be <service-unavailable/>." - http://xmpp.org/internet-drafts/draft-ietf-xmpp-3921bis-03.html#rules-fulljid-nomatch > Please let me know if I am thinking about these things correctly. As Peter > said, I think these would be great to add to the spec to help MUC newbies > like myself that don’t know much about how these real-world problems are > solved by the various implementations. > > > > Cheers, > > Karthik > -- Waqas Hussain
