KeepAlive15秒心跳设置

思考心跳的 15s 的逻辑是在哪里处理的?如果是我自己来写这段代码,我会写在创建连接的时候。按照这个思路向下找,就可以发现下面的代码:

func (ln *TCPListener) accept() (*TCPConn, error) {fd, err := ln.fd.accept()if err != nil {return nil, err}tc := newTCPConn(fd)if ln.lc.KeepAlive >= 0 {setKeepAlive(fd, true)ka := ln.lc.KeepAliveif ln.lc.KeepAlive == 0 {ka = defaultTCPKeepAlive}setKeepAlivePeriod(fd, ka)}return tc, nil
}

这里的 defaultTCPKeepAlive 默认时间是 15s

// defaultTCPKeepAlive is a default constant value for TCPKeepAlive times
// See golang.org/issue/31510
const (defaultTCPKeepAlive = 15 * time.Second
)


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部