An instance of net.Socket
the optional settings
All Readable stream implementations must provide an implementation of the readable._read() method to fetch data from the underlying resource.
All Readable stream implementations must provide an implementation of the readable._read() method to fetch data from the underlying resource.
When readable._read() is called, if data is available from the resource, the implementation should begin pushing that data into the read queue using the this.push(dataChunk) method. _read() should continue reading from the resource and pushing data until readable.push() returns false. Only when _read() is called again after it has stopped should it resume pushing additional data onto the queue.
the number of bytes to read asynchronously
All Writable stream implementations must provide a writable._write() method to send data to the underlying resource.
All Writable stream implementations must provide a writable._write() method to send data to the underlying resource.
The chunk to be written. Will always be a buffer unless the decodeStrings option was set to false.
Call this function (optionally with an error argument) when processing is complete for the supplied chunk.
All Writable stream implementations must provide a writable._write() method to send data to the underlying resource.
All Writable stream implementations must provide a writable._write() method to send data to the underlying resource.
The chunk to be written. Will always be a buffer unless the decodeStrings option was set to false.
If the chunk is a string, then encoding is the character encoding of that string. If chunk is a Buffer, or if the stream is operating in object mode, encoding may be ignored.
Call this function (optionally with an error argument) when processing is complete for the supplied chunk.
The writable._writev() method may be implemented in addition to writable._write() in stream implementations that are capable of processing multiple chunks of data at once.
The writable._writev() method may be implemented in addition to writable._write() in stream implementations that are capable of processing multiple chunks of data at once. If implemented, the method will be called with all chunks of data currently buffered in the write queue.
The chunks to be written. Each chunk has following format: { chunk: ..., encoding: ... }.
A callback function (optionally with an error argument) to be invoked when processing is complete for the supplied chunks.
Alias for emitter.on(eventName, listener).
Alias for emitter.on(eventName, listener).
emitter.addListener(eventName, listener)
on()
Returns the bound address, the address family name and port of the socket as reported by the operating system.
Returns the bound address, the address family name and port of the socket as reported by the operating system.
an object with three properties, e.g. { port: 12346, family: 'IPv4', address: '127.0.0.1' }
net.Socket has the property that socket.write() always works.
net.Socket has the property that socket.write() always works. This is to help users get up and running quickly. The computer cannot always keep up with the amount of data that is written to a socket - the network connection simply might be too slow. Node.js will internally queue up the data written to a socket and send it out over the wire when it is possible. (Internally it is polling on the socket's file descriptor for being writable).
The consequence of this internal buffering is that memory may grow. This property shows the number of characters currently buffered to be written. (Number of characters is approximately equal to the number of bytes to be written, but the buffer may contain strings, and the strings are lazily encoded, so the exact number of bytes is not known.)
Users who experience large or growing bufferSize should attempt to "throttle" the data flows in their program with pause() and resume().
The amount of received bytes.
The amount of received bytes.
The amount of bytes sent.
The amount of bytes sent.
Opens the connection for a given socket.
Opens the connection for a given socket.
the given connection path
socket.connect(path[, connectListener])
Opens the connection for a given socket.
Opens the connection for a given socket.
the given connection path
the optional connect listener
socket.connect(path[, connectListener])
Opens the connection for a given socket.
Opens the connection for a given socket.
the port number
socket.connect(port[, host][, connectListener])
Opens the connection for a given socket.
Opens the connection for a given socket.
the port number
the host name or IP
socket.connect(port[, host][, connectListener])
Opens the connection for a given socket.
Opens the connection for a given socket.
the port number
the optional connect listener
socket.connect(port[, host][, connectListener])
Opens the connection for a given socket.
Opens the connection for a given socket.
the port number
the host name or IP
the optional connect listener
socket.connect(port[, host][, connectListener])
Opens the connection for a given socket.
Opens the connection for a given socket. For TCP sockets, options argument should be an object which specifies:
For local domain sockets, options argument should be an object which specifies:
path: Path the client should connect to (Required).
Normally this method is not needed, as net.createConnection opens the socket. Use this only if you are implementing a custom Socket. This function is asynchronous. When the 'connect' event is emitted the socket is established. If there is a problem connecting, the 'connect' event will not be emitted, the 'error' event will be emitted with the exception. The connectListener parameter will be added as a listener for the 'connect' event.
the given socket options
the optional connect listener
socket.connect(options[, connectListener])
socket.connect(port[, host][, connectListener]) As socket.connect(options[, connectListener]), with options either as either {port: port, host: host} or {path: path}.
socket.connect(path[, connectListener])
If true - socket.connect(options[, connectListener]) was called and haven't yet finished.
If true - socket.connect(options[, connectListener]) was called and haven't yet finished. Will be set to false before emitting connect event and/or calling socket.connect(options[, connectListener])'s callback.
Forces buffering of all writes.
Forces buffering of all writes. Buffered data will be flushed either at stream.uncork() or at stream.end() call.
writable.cork()
Ensures that no more I/O activity happens on this socket.
Ensures that no more I/O activity happens on this socket. Only necessary in case of errors (parse error or so).
Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.
Synchronously calls each of the listeners registered for the event named eventName, in the order they were registered, passing the supplied arguments to each.
Returns true if the event had listeners, false otherwise.
the event name
the event arguments
emitter.emit(name[, arg1][, arg2][, ...])
Call this method when no more data will be written to the stream.
Call this method when no more data will be written to the stream. If supplied, the callback is attached as a listener on the 'finish' event. Calling stream.write() after calling stream.end() will raise an error.
writable.end([chunk][, encoding][, callback])
Call this method when no more data will be written to the stream.
Call this method when no more data will be written to the stream. If supplied, the callback is attached as a listener on the 'finish' event. Calling stream.write() after calling stream.end() will raise an error.
the Callback for when this chunk of data is flushed
writable.end([chunk][, encoding][, callback])
Call this method when no more data will be written to the stream.
Call this method when no more data will be written to the stream. If supplied, the callback is attached as a listener on the 'finish' event. Calling stream.write() after calling stream.end() will raise an error.
The data to write (<String> | <Buffer>)
writable.end([chunk][, encoding][, callback])
Call this method when no more data will be written to the stream.
Call this method when no more data will be written to the stream. If supplied, the callback is attached as a listener on the 'finish' event. Calling stream.write() after calling stream.end() will raise an error.
The data to write (<String> | <Buffer>)
The encoding, if chunk is a String
writable.end([chunk][, encoding][, callback])
Call this method when no more data will be written to the stream.
Call this method when no more data will be written to the stream. If supplied, the callback is attached as a listener on the 'finish' event. Calling stream.write() after calling stream.end() will raise an error.
The data to write (<String> | <Buffer>)
The encoding, if chunk is a String
writable.end([chunk][, encoding][, callback])
Call this method when no more data will be written to the stream.
Call this method when no more data will be written to the stream. If supplied, the callback is attached as a listener on the 'finish' event. Calling stream.write() after calling stream.end() will raise an error.
The data to write (<String> | <Buffer>)
writable.end([chunk][, encoding][, callback])
Call this method when no more data will be written to the stream.
Call this method when no more data will be written to the stream. If supplied, the callback is attached as a listener on the 'finish' event. Calling stream.write() after calling stream.end() will raise an error.
The data to write (<String> | <Buffer>)
the Callback for when this chunk of data is flushed
writable.end([chunk][, encoding][, callback])
Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.
Returns the current max listener value for the EventEmitter which is either set by emitter.setMaxListeners(n) or defaults to EventEmitter.defaultMaxListeners.
emitter.getMaxListeners()
setMaxListeners()
Returns an object representing the peer's certificate.
Returns an object representing the peer's certificate. The returned object has some properties corresponding to the fields of the certificate.
If the full certificate chain was requested, each certificate will include a issuerCertificate property containing an object representing its issuer's certificate.
Include the full certificate chain if true, otherwise include just the peer's certificate.
the peer certificate
Returns a string containing the negotiated SSL/TLS protocol version of the current connection.
Returns a string containing the negotiated SSL/TLS protocol version of the current connection. The value 'unknown' will be returned for connected sockets that have not completed the handshaking process. The value null will be returned for server sockets or disconnected client sockets.
a string containing the negotiated SSL/TLS protocol version
Returns the ASN.1 encoded TLS session or undefined if no session was negotiated.
Returns the ASN.1 encoded TLS session or undefined if no session was negotiated. Can be used to speed up handshake establishment when reconnecting to the server.
the ASN.1 encoded TLS session
This method returns whether or not the readable has been explicitly paused by client code (using stream.pause() without a corresponding stream.resume()).
This method returns whether or not the readable has been explicitly paused by client code (using stream.pause() without a corresponding stream.resume()).
readable.isPaused()
Returns the number of listeners listening to the event named eventName.
Returns the number of listeners listening to the event named eventName.
emitter.listenerCount(eventName)
Returns a copy of the array of listeners for the event named eventName.
Returns a copy of the array of listeners for the event named eventName.
emitter.listeners(eventName)
The string representation of the local IP address the remote client is connecting on.
The string representation of the local IP address the remote client is connecting on. For example, if you are listening on '0.0.0.0' and the client connects on '192.168.1.1', the value would be '192.168.1.1'.
The numeric representation of the local port.
The numeric representation of the local port. For example, 80 or 21.
Adds the listener function to the end of the listeners array for the event named eventName.
Adds the listener function to the end of the listeners array for the event named eventName. No checks are made to see if the listener has already been added. Multiple calls passing the same combination of eventName and listener will result in the listener being added, and called, multiple times.
Returns a reference to the EventEmitter so calls can be chained.
emitter.on(eventName, listener)
Adds a one time listener function for the event named eventName.
Adds a one time listener function for the event named eventName. This listener is invoked only the next time eventName is triggered, after which it is removed.
emitter.once(eventName, listener)
This method will cause a stream in flowing mode to stop emitting 'data' events, switching out of flowing mode.
This method will cause a stream in flowing mode to stop emitting 'data' events, switching out of flowing mode. Any data that becomes available will remain in the internal buffer.
readable.pause()
This method pulls all the data out of a readable stream, and writes it to the supplied destination, automatically managing the flow so that the destination is not overwhelmed by a fast readable stream.
This method pulls all the data out of a readable stream, and writes it to the supplied destination, automatically managing the flow so that the destination is not overwhelmed by a fast readable stream. Multiple destinations can be piped to safely.
readable.pipe(destination[, options])
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume.
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume. Passing chunk as null signals the end of the stream (EOF), after which no more data can be written.
When the Readable is operating in paused mode, the data added with readable.push() can be read out by calling the readable.read() method when the 'readable' event is emitted.
When the Readable is operating in flowing mode, the data added with readable.push() will be delivered by emitting a 'data' event.
the chunk of data to push into the read queue
true if additional chunks of data may continued to be pushed; false otherwise.
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume.
When chunk is a Buffer or string, the chunk of data will be added to the internal queue for users of the stream to consume. Passing chunk as null signals the end of the stream (EOF), after which no more data can be written.
When the Readable is operating in paused mode, the data added with readable.push() can be read out by calling the readable.read() method when the 'readable' event is emitted.
When the Readable is operating in flowing mode, the data added with readable.push() will be delivered by emitting a 'data' event.
the chunk of data to push into the read queue
the encoding of String chunks. Must be a valid Buffer encoding, such as 'utf8' or 'ascii'
true if additional chunks of data may continued to be pushed; false otherwise.
The read() method pulls some data out of the internal buffer and returns it.
The read() method pulls some data out of the internal buffer and returns it. If there is no data available, then it will return null.
If you pass in a size argument, then it will return that many bytes. If size bytes are not available, then it will return null, unless we've ended, in which case it will return the data remaining in the buffer.
If you do not specify a size argument, then it will return all the data in the internal buffer.
This method should only be called in paused mode. In flowing mode, this method is called automatically until the internal buffer is drained.
readable.read([size])
Opposite of unref, calling ref on a previously unrefd socket will not let the program exit if it's the only socket left (the default behavior).
Opposite of unref, calling ref on a previously unrefd socket will not let the program exit if it's the only socket left (the default behavior). If the socket is refd calling ref again will have no effect.
socket
The string representation of the remote IP address.
The string representation of the remote IP address. For example, '74.125.127.100' or '2001:4860:a005::68'. Value may be undefined if the socket is destroyed (for example, if the client disconnected).
The string representation of the remote IP family.
The string representation of the remote IP family. 'IPv4' or 'IPv6'.
The numeric representation of the remote port.
The numeric representation of the remote port. For example, 80 or 21.
Removes all listeners, or those of the specified eventName.
Removes all listeners, or those of the specified eventName.
Note that it is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).
Returns a reference to the EventEmitter so calls can be chained.
emitter.removeAllListeners([eventName])
Removes all listeners, or those of the specified eventName.
Removes all listeners, or those of the specified eventName.
Note that it is bad practice to remove listeners added elsewhere in the code, particularly when the EventEmitter instance was created by some other component or module (e.g. sockets or file streams).
Returns a reference to the EventEmitter so calls can be chained.
emitter.removeAllListeners([eventName])
Removes the specified listener from the listener array for the event named eventName.
Removes the specified listener from the listener array for the event named eventName. removeListener will remove, at most, one instance of a listener from the listener array. If any single listener has been added multiple times to the listener array for the specified eventName, then removeListener must be called multiple times to remove each instance.
Note that once an event has been emitted, all listeners attached to it at the time of emitting will be called in order. This implies that any removeListener() or removeAllListeners() calls after emitting and before the last listener finishes execution will not remove them from emit() in progress. Subsequent events will behave as expected.
emitter.removeListener(eventName, listener)
This method will cause the readable stream to resume emitting 'data' events.
This method will cause the readable stream to resume emitting 'data' events. This method will switch the stream into flowing mode. If you do not want to consume the data from a stream, but you do want to get to its 'end' event, you can call stream.resume() to open the flow of data.
readable.resume()
Sets the default encoding for a writable stream.
Sets the default encoding for a writable stream.
writable.setDefaultEncoding(encoding)
Call this function to cause the stream to return strings of the specified encoding instead of Buffer objects.
Call this function to cause the stream to return strings of the specified encoding instead of Buffer objects. For example, if you do readable.setEncoding('utf8'), then the output data will be interpreted as UTF-8 data, and returned as strings. If you do readable.setEncoding('hex'), then the data will be encoded in hexadecimal string format.
This properly handles multi-byte characters that would otherwise be potentially mangled if you simply pulled the Buffers directly and called buf.toString(encoding) on them. If you want to read the data as strings, always use this method.
Also you can disable any encoding at all with readable.setEncoding(null). This approach is very useful if you deal with binary data or with large multi-byte strings spread out over multiple chunks.
readable.setEncoding(encoding)
Enable/disable keep-alive functionality, and optionally set the initial delay before the first keepalive probe is sent on an idle socket.
Enable/disable keep-alive functionality, and optionally set the initial delay before the first keepalive probe is sent on an idle socket. enable defaults to false.
Set initialDelay (in milliseconds) to set the delay between the last data packet received and the first keepalive probe. Setting 0 for initialDelay will leave the value unchanged from the default (or previous) setting. Defaults to 0.
socket
socket.setKeepAlive([enable][, initialDelay])
By default EventEmitters will print a warning if more than 10 listeners are added for a particular event.
By default EventEmitters will print a warning if more than 10 listeners are added for a particular event. This is a useful default that helps finding memory leaks. Obviously, not all events should be limited to just 10 listeners. The emitter.setMaxListeners() method allows the limit to be modified for this specific EventEmitter instance. The value can be set to Infinity (or 0) for to indicate an unlimited number of listeners.
Returns a reference to the EventEmitter so calls can be chained.
emitter.setMaxListeners(n)
Disables the Nagle algorithm.
Disables the Nagle algorithm. By default TCP connections use the Nagle algorithm, they buffer data before sending it off. Setting true for noDelay will immediately fire off data each time socket.write() is called. noDelay defaults to true.
socket
socket.setNoDelay([noDelay])
Sets the socket to timeout after timeout milliseconds of inactivity on the socket.
Sets the socket to timeout after timeout milliseconds of inactivity on the socket. By default net.Socket do not have a timeout. When an idle timeout is triggered the socket will receive a 'timeout' event but the connection will not be severed. The user must manually end() or destroy() the socket. If timeout is 0, then the existing idle timeout is disabled. The optional callback parameter will be added as a one time listener for the 'timeout' event.
socket.
socket.setTimeout(timeout[, callback])
Flush all data, buffered since stream.cork() call.
Flush all data, buffered since stream.cork() call.
writable.uncork()
This method will remove the hooks set up for a previous stream.pipe() call.
This method will remove the hooks set up for a previous stream.pipe() call.
If the destination is not specified, then all pipes are removed.
If the destination is specified, but no pipe is set up for it, then this is a no-op.
readable.unpipe([destination])
Calling unref on a socket will allow the program to exit if this is the only active socket in the event system.
Calling unref on a socket will allow the program to exit if this is the only active socket in the event system. If the socket is already unrefd calling unref again will have no effect.
socket.
This is useful in certain cases where a stream is being consumed by a parser, which needs to "un-consume" some data that it has optimistically pulled out of the source, so that the stream can be passed on to some other party.
This is useful in certain cases where a stream is being consumed by a parser, which needs to "un-consume" some data that it has optimistically pulled out of the source, so that the stream can be passed on to some other party.
Note that stream.unshift(chunk) cannot be called after the 'end' event has been triggered; a runtime error will be raised.
If you find that you must often call stream.unshift(chunk) in your programs, consider implementing a Transform stream instead.
readable.unshift(chunk)
Versions of Node.js prior to v0.10 had streams that did not implement the entire Streams API as it is today.
Versions of Node.js prior to v0.10 had streams that did not implement the entire Streams API as it is today. (See Compatibility for more information.)
If you are using an older Node.js library that emits 'data' events and has a stream.pause() method that is advisory only, then you can use the wrap() method to create a Readable stream that uses the old stream as its data source.
You will very rarely ever need to call this function, but it exists as a convenience for interacting with old Node.js programs and libraries.
readable.wrap(stream)
Flush all data, buffered since stream.cork() call.
Flush all data, buffered since stream.cork() call.
The data to write (<String> | <Buffer>)
true, if the data was handled completely
writable.write(chunk[, encoding][, callback])
Flush all data, buffered since stream.cork() call.
Flush all data, buffered since stream.cork() call.
The data to write (<String> | <Buffer>)
the Callback for when this chunk of data is flushed
true, if the data was handled completely
writable.write(chunk[, encoding][, callback])
Flush all data, buffered since stream.cork() call.
Flush all data, buffered since stream.cork() call.
The data to write (<String> | <Buffer>)
The encoding, if chunk is a String
the Callback for when this chunk of data is flushed
true, if the data was handled completely
writable.write(chunk[, encoding][, callback])
The tls.TLSSocket is a subclass of net.Socket that performs transparent encryption of written data and all required TLS negotiation.
Instances of tls.TLSSocket implement the duplex Stream interface.