[jdev] How do I know when a MUC server restarts?
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.
More information about the JDev