If a client terminates a connection with </stream> and then closes the stream the disconnection
event is propagated to the other clients immediately.
Does this also happen if a client closes a stream without sending </stream>?
My concern:
Imagine the situation where a connection is terminated for a blink of an eye due to network issues.
In this case the client would reconnect immediately. It is not necessary for the other clients
to take notice of the short downtime, so it would be best if there is an inactivity timer
before a client is set to 'offline'.
> Does this also happen if a
> Does this also happen if a client closes a stream without sending ?
I think yes, because the client closes the TCP connection, and Erlang/ejabberd detects it.
> it would be best if there is an inactivity timer before a client is set to 'offline'.
In the paper, this seems a good idea. But it might not prove good in practice, so it would need to be considered further.
On the other hand, at first look this doesn't seem easily implementable, because when the TCP connection is closed Erlang detects it and ejabberd stops the related C2S process. It would need some research to see if it's possible to:
This may be related:https://support.process-one.net/browse/EJAB-430