Skip to content
No description, website, or topics provided.
Branch: master
Clone or download
Latest commit f76b24e Oct 6, 2014
Type Name Latest commit message Commit time
Failed to load latest commit information.
examples update shoe example to use sockjs-stream Feb 23, 2014
test disconnect works when waiting for connection Jul 24, 2013
.npmignore ignore examples Jun 6, 2013
LICENSE initial Aug 15, 2012 update docs Jan 31, 2014 add support for Jun 20, 2013
http.js use reconnect for http Jan 10, 2013
index.js make same codepath work for client and node Jun 17, 2013
inject.js use reconnect-core Jan 31, 2014
package.json 2.0.2 Oct 6, 2014
shoe-client.js use reconnect-core Jan 31, 2014
shoe.js use reconnect-core Jan 31, 2014
sock.js convert http to ws, to be more fool-proof Jun 17, 2013
tls.js support tls Mar 11, 2013
widget.js allow reconnection, and simpler widget Feb 25, 2013


Reconnect a stream (tcp, ws, tls, http) when network goes down.

Status: LEGACY, use reconnect-core

This module should now be considered legacy, it is recommend to use reconnect-core directly. This module is now only a bundle of wrappers around reconnect-core.

Currently supports:


Pass a function that will be called every time the stream connects. if the connection is broken, reconnect will make a new connection and call this function again.

var reconnect = require('reconnect')

reconnect(function (stream) {
  //called every time the connection is remade.
  //only one connection will ever be live at one time.


websockets can be used from both the client and the server, with the same code!

var reconnect = require('reconnect/shoe')

reconnect(function (stream) {
  //called every time the connection is remade.
  //only one connection will ever be live at one time.

a shoe server must be used.


reconnect (opts, onConnect)

if opts is an object it will be passed to backoff which handles throttling the reconnection attempts. it also accepts a type parameter, which may be either 'fibonacci' or 'exponential'.

//example opts
var opts = {
  randomisationFactor: 0,
  initialDelay: 10,
  maxDelay: 300

opts is optional. If opts.immediate is true then we will treat the stream as if it does not emit a "connect" event and fall back to listening to the first piece of data. This is useful for non connection streams like database cursors or tailing files.

passing onConnect to reconnect is short hand for reconnect(opts).on('connect', onConnect)

reconnect.connect (...)

attempt to connect. the arguments will be passed onto the underlying stream type. (either you are calling shoe(uri) or net.connect(port)) these arguments will be used for every subsequent connection attempt.

emit('connect', stream)

emitted when a new connection is made (that includes after a disconnection!)

emit('disconnect', stream)

emitted when the stream has disconnected.

emit ('backoff', attempts, delay)

reemitted from backoff when reconnect is waiting for the next time to connect.

emit ('reconnect', attempts, delay)

emitted when attempting a new connection.


set to false and reconnect will not automatically reconnect. starts out true.


Use reconnect-core instead.


The reconnect widget has been moved into a separate module reconnect-widget



You can’t perform that action at this time.