node socket 超时设置
时间: 2023-09-03 11:09:53 浏览: 375
在 Node.js 中,可以使用 `socket.setTimeout()` 方法来设置 socket 超时时间。
该方法接受一个整数参数,表示超时时间,单位为毫秒。当连接或数据传输超过该时间时,socket 将会自动关闭。如果在超时时间内有数据传输,超时时间会被重置。
以下是一个简单的示例代码:
```javascript
const net = require('net')
const server = net.createServer((socket) => {
console.log('client connected')
// 设置超时时间为 10 秒
socket.setTimeout(10000)
socket.on('timeout', () => {
console.log('socket timeout')
socket.end()
})
socket.on('data', (data) => {
console.log(`received data: ${data}`)
})
socket.on('end', () => {
console.log('client disconnected')
})
})
server.listen(3000, () => {
console.log('server started')
})
```
在上面的示例中,我们创建了一个 TCP 服务器,并在每个新建的 socket 连接上设置了超时时间为 10 秒。当超时事件触发时,我们会打印一条日志并关闭 socket 连接。
需要注意的是,超时事件只会在 socket 上触发一次。如果需要在超时时间内重复接收数据,需要在每次接收数据后手动重置超时时间,可以使用 `socket.setTimeout()` 方法或 `socket.ref()` 方法来实现。
阅读全文