- Server
- new Server(httpServer[, options])
- new Server(port[, options])
- new Server(options)
- server.sockets
- server.serveClient([value])
- server.path([value])
- server.adapter([value])
- server.origins([value])
- server.origins(fn)
- server.attach(httpServer[, options])
- server.attach(port[, options])
- server.listen(httpServer[, options])
- server.listen(port[, options])
- server.bind(engine)
- server.onconnection(socket)
- server.of(nsp)
- server.close([callback])
- server.engine.generateId
Server
Exposed by require('socket.io')
.
new Server(httpServer[, options])
httpServer
(http.Server) the server to bind to.options
(Object)
Works with and without new
:
|
Available options:
Option | Default value | Description |
---|---|---|
path | /socket.io | name of the path to capture |
serveClient | true | whether to serve the client files |
adapter | - | the adapter to use. Defaults to an instance of the Adapter that ships with socket.io which is memory based. See socket.io-adapter |
origins | * | the allowed origins |
parser | - | the parser to use. Defaults to an instance of the Parser that ships with socket.io. See socket.io-parser. |
Available options for the underlying Engine.IO server:
Option | Default value | Description |
---|---|---|
pingTimeout | 5000 | how many ms without a pong packet to consider the connection closed |
pingInterval | 25000 | how many ms before sending a new ping packet |
upgradeTimeout | 10000 | how many ms before an uncompleted transport upgrade is cancelled |
maxHttpBufferSize | 10e7 | how many bytes or characters a message can be, before closing the session (to avoid DoS). |
allowRequest | A function that receives a given handshake or upgrade request as its first parameter, and can decide whether to continue or not. The second argument is a function that needs to be called with the decided information: fn(err, success) , where success is a boolean value where false means that the request is rejected, and err is an error code. | |
transports | [‘polling’, ‘websocket’] | transports to allow connections to |
allowUpgrades | true | whether to allow transport upgrades |
perMessageDeflate | false | parameters of the WebSocket permessage-deflate extension (see ws module api docs). Set to true to disable. |
httpCompression | true | parameters of the http compression for the polling transports (see zlib api docs). Set to false to disable. |
cookie | io | name of the HTTP cookie that contains the client sid to send as part of handshake response headers. Set to false to not send one. |
cookiePath | / | path of the above cookie option. If false, no path will be sent, which means browsers will only send the cookie on the engine.io attached path (/engine.io ). Set false to not save io cookie on all requests. |
cookieHttpOnly | true | if true HttpOnly io cookie cannot be accessed by client-side APIs, such as JavaScript. This option has no effect if cookie or cookiePath is set to false . |
wsEngine | ws | what WebSocket server implementation to use. Specified module must conform to the ws interface (see ws module api docs). Default value is ws . An alternative c++ addon is also available by installing the eiows module. |
Among those options:
The
pingTimeout
andpingInterval
parameters will impact the delay before a client knows the server is not available anymore. For example, if the underlying TCP connection is not closed properly due to a network issue, a client may have to wait up topingTimeout + pingInterval
ms before getting adisconnect
event.The order of the
transports
array is important. By default, a long-polling connection is established first, and then upgraded to WebSocket if possible. Using['websocket']
means there will be no fallback if a WebSocket connection cannot be opened.
|
new Server(port[, options])
port
(Number) a port to listen to (a newhttp.Server
will be created)options
(Object)
See above for the list of available options
.
|
new Server(options)
options
(Object)
See above for the list of available options
.
|
server.sockets
- (Namespace)
An alias for the default (/
) namespace.
|
server.serveClient([value])
value
(Boolean)- Returns
Server|Boolean
If value
is true
the attached server (see Server#attach
) will serve the client files. Defaults to true
. This method has no effect after attach
is called. If no arguments are supplied this method returns the current value.
|
server.path([value])
value
(String)- Returns
Server|String
Sets the path value
under which engine.io
and the static files will be served. Defaults to /socket.io
. If no arguments are supplied this method returns the current value.
|
server.adapter([value])
value
(Adapter)- Returns
Server|Adapter
Sets the adapter value
. Defaults to an instance of the Adapter
that ships with socket.io which is memory based. See socket.io-adapter. If no arguments are supplied this method returns the current value.
|
server.origins([value])
value
(String|String[])- Returns
Server|String
Sets the allowed origins value
. Defaults to any origins being allowed. If no arguments are supplied this method returns the current value.
|
server.origins(fn)
fn
(Function)- Returns
Server
Provides a function taking two arguments origin:String
and callback(error, success)
, where success
is a boolean value indicating whether origin is allowed or not. If success
is set to false
, error
must be provided as a string value that will be appended to the server response, e.g. “Origin not allowed”.
Potential drawbacks:
- in some situations, when it is not possible to determine
origin
it may have value of*
- As this function will be executed for every request, it is advised to make this function work as fast as possible
- If
socket.io
is used together withExpress
, the CORS headers will be affected only forsocket.io
requests. For Express you can use cors.
|
server.attach(httpServer[, options])
httpServer
(http.Server) the server to attach tooptions
(Object)
Attaches the Server
to an engine.io instance on httpServer
with the supplied options
(optionally).
server.attach(port[, options])
port
(Number) the port to listen onoptions
(Object)
Attaches the Server
to an engine.io instance on a new http.Server with the supplied options
(optionally).
server.listen(httpServer[, options])
Synonym of server.attach(httpServer[, options]).
server.listen(port[, options])
Synonym of server.attach(port[, options]).
server.bind(engine)
engine
(engine.Server)- Returns
Server
Advanced use only. Binds the server to a specific engine.io Server
(or compatible API) instance.
server.onconnection(socket)
socket
(engine.Socket)- Returns
Server
Advanced use only. Creates a new socket.io
client from the incoming engine.io (or compatible API) Socket
.
server.of(nsp)
nsp
(String|RegExp|Function)- Returns
Namespace
Initializes and retrieves the given Namespace
by its pathname identifier nsp
. If the namespace was already initialized it returns it immediately.
|
A regex or a function can also be provided, in order to create namespace in a dynamic way:
|
With a function:
|
server.close([callback])
callback
(Function)
Closes the socket.io server. The callback
argument is optional and will be called when all connections are closed.
|
server.engine.generateId
Overwrites the default method to generate your custom socket id.
The function is called with a node request object (http.IncomingMessage
) as first parameter.
|