add ability to pass custom protocols
rename resetTimeout to maxReconnects to make sense
docs
update example for new api