1. Set up OpenFire server: ```console $ docker run --name openfire --publish 9090:9090 --publish 5222:5222 --publish 7777:7777 --publish 7070:7070 sameersbn/openfire:3.10.3-19 ``` 2. Start a program written by @dsparkplug to illustrate #95: https://github.com/ForNeVeR/Jabber-Net/issues/95#issuecomment-391597684 3. The program will (at least in my environment) will eventually fail with `InvalidOperationException("Socket not connected.")` from here: https://github.com/ForNeVeR/Jabber-Net/blob/89a7d9f0a5cba983d4a8ddd9555074f85c3495e0/src/JabberNet/bedrock/net/AsyncSocket.cs#L884 It looks like sometimes the callback gets dispatched after the socket disconnects. We need to fix that.