server.listen()
启动服务器侦听连接。 net.Server
可以是 TCP 或 IPC 服务器,具体取决于它所听的内容。
可能的签名:
server.listen(handle[, backlog][, callback])
- server.listen(options[, callback])
server.listen(path[, backlog][, callback])
server.listen([port[, host[, backlog]]][, callback])
用于 TCP 服务器
这个函数是异步的。当服务器开始侦听时,将发出
事件。最后一个参数'listening'
callback
将被添加为
事件的侦听器。'listening'
所有listen()
方法都可以采用backlog
参数来指定待处理连接队列的最大长度。实际长度将由操作系统通过 sysctl 设置确定,例如 Linux 上的 tcp_max_syn_backlog
和 somaxconn
。此参数的默认值为 511(不是 512)。
所有
都设置为net.Socket
SO_REUSEADDR
(有关详细信息,请参见
)。socket(7)
当且仅当在第一次 server.listen()
调用期间出现错误或已调用 server.close()
时,才能再次调用 server.listen()
方法。否则,将引发 ERR_SERVER_ALREADY_LISTEN
错误。
收听时最常见的错误之一是 EADDRINUSE
。当另一台服务器已经在侦听请求的 port
/path
/handle
时,就会发生这种情况。处理此问题的一种方法是在一定时间后重试:
server.on('error', (e) => {
if (e.code === 'EADDRINUSE') {
console.log('Address in use, retrying...');
setTimeout(() => {
server.close();
server.listen(PORT, HOST);
}, 1000);
}
});
相关用法
- Node.js net.Server.address()用法及代码示例
- Node.js net.Socket.setTimeout(timeout[, callback])用法及代码示例
- Node.js net.isIP(input)用法及代码示例
- Node.js net.createConnection(options[, connectListener])用法及代码示例
- Node.js net.isIPv6(input)用法及代码示例
- Node.js net.createServer([options][, connectionListener])用法及代码示例
- Node.js net.BlockList.check(address[, type])用法及代码示例
- Node.js net.isIPv4(input)用法及代码示例
- Node.js new assert.AssertionError(options)用法及代码示例
- Node.js new AsyncResource(type[, options])用法及代码示例
- Node.js new stream.Duplex(options)用法及代码示例
- Node.js new stream.Readable([options])用法及代码示例
- Node.js new Console(options)用法及代码示例
- Node.js new URLSearchParams(obj)用法及代码示例
- Node.js new crypto.Certificate()用法及代码示例
- Node.js new stream.Writable([options])用法及代码示例
- Node.js new URLSearchParams(iterable)用法及代码示例
- Node.js new Agent([options])用法及代码示例
- Node.js new vm.SourceTextModule(code[, options])用法及代码示例
- Node.js new stream.Transform([options])用法及代码示例
- Node.js new PerformanceObserver(callback)用法及代码示例
- Node.js new URL(input[, base])用法及代码示例
- Node.js new URLSearchParams(string)用法及代码示例
- Node.js new assert.CallTracker()用法及代码示例
- Node.js ServerHttp2Stream http2stream.pushStream(headers[, options], callback)用法及代码示例
注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 net.Server.listen()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。