'connection' 事件
socket
<stream.Duplex>
当建立新的 TCP 流时会触发此事件。
socket
通常是 net.Socket
类型的对象。
通常用户不会想访问这个事件。
特别是,由于协议解析器附加到套接字的方式,套接字将不会触发 'readable'
事件。
socket
也可以在 request.connection
上访问。
此事件也可以由用户显式发出,以将连接注入 HTTP 服务器。
在这种情况下,任何 Duplex
流都可以通过。
如果此处调用 socket.setTimeout()
,则当套接字已服务请求时(如果 server.keepAliveTimeout
非零)超时将替换为 server.keepAliveTimeout
。
除非用户指定 <net.Socket> 以外的套接字类型,否则此事件保证传入 <net.Socket> 类(<stream.Duplex> 的子类)的实例。
socket
<stream.Duplex>
This event is emitted when a new TCP stream is established. socket
is
typically an object of type net.Socket
. Usually users will not want to
access this event. In particular, the socket will not emit 'readable'
events
because of how the protocol parser attaches to the socket. The socket
can
also be accessed at request.connection
.
This event can also be explicitly emitted by users to inject connections
into the HTTP server. In that case, any Duplex
stream can be passed.
If socket.setTimeout()
is called here, the timeout will be replaced with
server.keepAliveTimeout
when the socket has served a request (if
server.keepAliveTimeout
is non-zero).
This event is guaranteed to be passed an instance of the <net.Socket> class, a subclass of <stream.Duplex>, unless the user specifies a socket type other than <net.Socket>.