- Null check on socketIO instance
- If connect future exists, don't try to reconnect
- Reset reconnect flag on connect success
- Added to unit test
- Use TimeUnit.SECONDS instead of TimeUnit.MINUTES (for older Android versions)