心跳设计
一、说明
1.1 为什么要设置心跳?
心跳机制一般是客户端向服务器定时发送一个特定的数据包,让服务器知道自己还在线,以确保连接的有效性的机制。 网络中的接收和发送数据都是使用操作系统中的 SOCKET 进行实现。 但是如果此 套接字 已经断开,那发送数据和接收数据的时候就一定会有问题。 可是如何判断这个套接字是否还可以使用呢? 这个就需要在系统中创建心跳机制。
其实TCP中已经为我们实现了一个内置心跳机制(SetKeepAliveValue)。但是该机制受限于操作系统,而且很容易误报。所以很少被大家使用。
大家使用最多的,就是自己设计数据包,然后预留心跳格式,当对方收到心跳包时,直接返回响应包即可。
那么,按这个思路,让我们使用优雅的实现吧。