TCP连接篇

如何保持TCP长连接?

使用KeepAlive(http1.1的内容)

 TCP识别不同的请求?

每次建立连接的时候,都会保存一个唯一的套接字,有了这个套接字,你就知道了对方的IP地址,端口号等信息,通过这个套接字,就可以向指定方发送信息了。

心跳包机制

为什么叫心跳包呢?这是因为它像心跳一样每隔固定的时间发送一次,以此来告诉服务器,这个客户端还活着,事实上,这是为了保持长连接。

在TCP机制里面,本身是存在心跳包机制的,系统默认是设置2小时的心跳频率的。但是它检测不到机器断电、网线拔出、防火墙这些断线。

实现思路:客户端连接上服务端以后,服务端维护一个在线用户字典,客户端每隔一段时间,向服务器发送一个心跳包,服务器接收到包以后,字典数据的值都会更新为0,一旦服务端超过规定的时间没有接收到客户端发来的包,字典数据将会递增加一,当字典数据的值大于等于三,则视为掉线。

底层原理:使用setTimeOut(function,timeOut)定时为服务器端发送请求

猜你喜欢

转载自www.cnblogs.com/liangshuang/p/8990506.html