# socket.io-client [![Build Status](https://secure.travis-ci.org/Automattic/socket.io-client.svg)](http://travis-ci.org/Automattic/socket.io-client) [![NPM version](https://badge.fury.io/js/socket.io-client.svg)](http://badge.fury.io/js/socket.io-client) ![Downloads](http://img.shields.io/npm/dm/socket.io-client.svg) ## How to use A standalone build of `socket.io-client` is exposed automatically by the socket.io server as `/socket.io/socket.io.js`. Alternatively you can serve the file `socket.io.js` found at the root of this repository. ```html ``` Socket.IO is compatible with [browserify](http://browserify.org/). ### Node.JS (server-side usage) Add `socket.io-client` to your `package.json` and then: ```js var socket = require('socket.io-client')('http://localhost'); socket.on('connect', function(){ socket.on('event', function(data){}); socket.on('disconnect', function(){}); }); ``` ## API ### IO(url:String, opts:Object):Socket Exposed as the `io` namespace in the standalone build, or the result of calling `require('socket.io-client')`. When called, it creates a new `Manager` for the given URL, and attempts to reuse an existing `Manager` for subsequent calls, unless the `multiplex` option is passed with `false`. The rest of the options are passed to the `Manager` constructor (see below for details). A `Socket` instance is returned for the namespace specified by the pathname in the URL, defaulting to `/`. For example, if the `url` is `http://localhost/users`, a transport connection will be established to `http://localhost` and a Socket.IO connection will be established to `/users`. ### IO#protocol Socket.io protocol revision number this client works with. ### IO#Socket Reference to the `Socket` constructor. ### IO#Manager Reference to the `Manager` constructor. ### IO#Emitter Reference to the `Emitter` constructor. ### Manager(url:String, opts:Object) A `Manager` represents a connection to a given Socket.IO server. One or more `Socket` instances are associated with the manager. The manager can be accessed through the `io` property of each `Socket` instance. The `opts` are also passed to `engine.io` upon initialization of the underlying `Socket`. Options: - `reconnection` whether to reconnect automatically (`true`) - `reconnectionDelay` how long to wait before attempting a new reconnection (`1000`) - `reconnectionDelayMax` maximum amount of time to wait between reconnections (`5000`). Each attempt increases the reconnection by the amount specified by `reconnectionDelay`. - `timeout` connection timeout before a `connect_error` and `connect_timeout` events are emitted (`20000`) - `autoConnect` by setting this false, you have to call `manager.open` whenever you decide it's appropriate #### Events - `connect`. Fired upon a successful connection. - `connect_error`. Fired upon a connection error. Parameters: - `Object` error object - `connect_timeout`. Fired upon a connection timeout. - `reconnect`. Fired upon a successful reconnection. Parameters: - `Number` reconnection attempt number - `reconnect_attempt`. Fired upon an attempt to reconnect. - `reconnecting`. Fired upon an attempt to reconnect. Parameters: - `Number` reconnection attempt number - `reconnect_error`. Fired upon a reconnection attempt error. Parameters: - `Object` error object - `reconnect_failed`. Fired when couldn't reconnect within `reconnectionAttempts` The events above are also emitted on the individual sockets that reconnect that depend on this `Manager`. ### Manager#reconnection(v:Boolean):Manager Sets the `reconnection` option, or returns it if no parameters are passed. ### Manager#reconnectionAttempts(v:Boolean):Manager Sets the `reconnectionAttempts` option, or returns it if no parameters are passed. ### Manager#reconnectionDelay(v:Boolean):Manager Sets the `reconectionDelay` option, or returns it if no parameters are passed. ### Manager#reconnectionDelayMax(v:Boolean):Manager Sets the `reconectionDelayMax` option, or returns it if no parameters are passed. ### Manager#timeout(v:Boolean):Manager Sets the `timeout` option, or returns it if no parameters are passed. ### Socket #### Events - `connect`. Fired upon connecting. - `error`. Fired upon a connection error Parameters: - `Object` error data - `disconnect`. Fired upon a disconnection. - `reconnect`. Fired upon a successful reconnection. Parameters: - `Number` reconnection attempt number - `reconnect_attempt`. Fired upon an attempt to reconnect. - `reconnecting`. Fired upon an attempt to reconnect. Parameters: - `Number` reconnection attempt number - `reconnect_error`. Fired upon a reconnection attempt error. Parameters: - `Object` error object - `reconnect_failed`. Fired when couldn't reconnect within `reconnectionAttempts` ## License MIT