什么是长连接?
指客户端和服务端建立连接后,不立即断开连接,并在此连接的基础上进行多次消息交互,直至连接的任意一方(客户端或服务端)主动断开连接。
什么是短连接?
指客户端和服务端仅需要连接一次,通讯完后立即断开。
长链接与短链接有什么区别?
对比名称 | 长连接 | 短边接 |
---|---|---|
连接次数 | 较少,建立一次连接后,开辟的连接可以多轮交互 | 较多,每次都需要重新建立连接 |
相关协议 | http1.1、websockeet、tcp | http1.0、udp |
内存开销 | 较多,由于每次都占用着线程,所以会有一定的开销 | 较少,每次连接后快速断开,可以减少不必要的内存占用 |
长连接与短连接的应用场景有哪些?
长连接:一般会应用于像服务的心跳比如通过 websockeet建立的服务是否存活心跳或者一些注册中心、监听器、配置中心、消息中件等都是应用于长连接的场景应用;
短连接:像web站点的接口请求、restful的http访问等这些都是短连接的应用。
一般像请求完立即结束这种会应用于短链接,而需要触发或者长时间持久某个监听或占用端口用来接收信息这种一般都是用于长连接。
最后
常用的QQ、微信这类都是长连接的一种实现应用的体现,而短连接更像是短信,每次发完当前这次对话就结束了,再发需要再掏钱,而长连接更像通话,在这段时间段拨通后一直占用,有话聊完为止。