Fixes issue #8 by adding a socket timeout callback instead of event listener.