从网络层嗅探工具比如tcpdump 可以看到如果不同的连接 会经历syn/syn+ack/ack 但是如果只是在应用层写代码,怎么判断呢
回复 (3)
T
这个问题有点意思,这个可能要看keepalive的实现,nodejs的话,目前想到的一个方式是,因为keepalive情况下是同一个socket,每次收到请求的时候,打标记,比如req.socket.keepaliveFlag等于true。那么每次收到请求的时候,判断标记,true就说明是长连接。但是对于第一个请求,这个方式不行,可以使用rsp.shouKeepalive这个字段。这个字段标记一个请求是否设置了keepalive头。
P
评论+1
P
引用 pazh123qq评论+1
@pazh123qq 评论+2
参与回复
登录后即可参与回复。登录