[jdev] How do I know when a MUC server restarts?

Kevin Smith kevin.smith at isode.com
Thu Mar 3 16:27:50 UTC 2016


On 3 Mar 2016, at 13:30, Florent Le Coz <louiz at louiz.org> wrote:
> 
> On 03/03/2016 02:19 PM, Stephen Paul Weber wrote:
>> I am writing a external component (using it with Prosody right now) that allows users to join MUCs on other servers.  When a remote server restarts, I see this is my prosody log:
>> 
>> info    outgoing s2s stream singpolyma.net->chat.yax.im closed: system-shutdown (Received SIGTERM)
>> 
>> Now, my component is not running on singpolyma.net (that is a different domain on the same Prosody instance), but either maybe all s2s were incoming at the time since no one had said anything recently?
>> 
>> Anyway, looking at the logs on my component, I don't see any stanza indicating anything about this.  I mean, I guess that makes sense.  Server restarts don't generate stanzas.
>> 
>> The problem is that when they restart the server, it comes back up with all MUCs empty and I need to get everyone on my component to re-join.  But as it the component actually thinks they are still in the MUC!
>> 
>> Other XMPP clients I use seem to (sometimes after awhile) detect this situation somehow and tell me I'm no longer in the room (or try to re-join). How are they doing this?  Is this some quirk of the external component protocol where normally Prosody would generate this kind of stanza to a client?  Or what else could I be missing?  I really need to solve this issue...
>> 
>> Many thanks for any help!
>> 
> 
> I’m also interested by this issue, this is annoying for the users. I already asked for ways to solve this (on the jdev@ muc, for example, I believe), and the conclusion was to ping my own in-room JID (e.g. jdev at conference.example.com/MyNick) once in a while.
> 
> If the room considers that the client is not in the room, then it should get an error instead of a ping result.

This is probably as good as it gets, but sadly even this isn’t reliable - a MUC room could send you an error even if you’re in the room, if it’s configured not to allow IQs or such.

/K


More information about the JDev mailing list