长连接

作者: dlihasa | 来源:发表于2018-08-04 10:44 被阅读14次

    长连接的简单理解(详细定义自行百度):

    与Http短连接相反,通过某种方式与服务器一直保持连接就叫长连接。(通过长连接,服务器可以主动向客户端发送消息)

    长连接的原理:

    1、首先说无论是http还是长连接都是都是基于tcp/ip这一传输层和网络层协议的;
    2、而长连接是通过socket和ServerSocket与服务器保持连接。
    3、服务端一般使用ServerSocket建立监听,监听客户端与之连接。
    4、客户端使用socket,指定IP地址(具体到代码是一个string的参数)和端口(具体到代码是一个int型的参数),与服务器进行连接(之后可以用socket.isConnected()来判断是否成功连接)

    长连接的意义:

    1、通过长连接,可以实现服务器主动向客户端推送消息(android端的推送都是通过长连接来完成的)
    2、通过长连接,可以减少客户端对服务器的轮询,减轻服务器的压力。(比如微信的新动态红点提示,如果没有长连接则需要隔一段时间来向服务器请求是否有新的动态)
    3、通信效率远远高于http(每次请求服务器都要经历三次握手四次挥手,然后断开,过程往复,有些http框架虽然缓存了connection对象,性能上有一定优化,但是效率上明显还是不如长连接的)

    长连接中的心跳机制以及其他的一些相关知识

    引用一篇博客介绍android长连接心跳机制,其实我个人的理解就是:只有三次握手而没有心跳是不会长久的(长连接和http都是基于tcp的三次握手,长连接客户端会定时给服务器端发送心跳,证明自己还在然后得到服务端回应,证明彼此还在为对方坚持),不知道这么理解对不对。

    长连接中的SOCKET以及通讯实现的一篇博文

    https://blog.csdn.net/yhaolpz/article/details/59483916

    相关文章

      网友评论

          本文标题:长连接

          本文链接:https://www.haomeiwen.com/subject/ypgpvftx.html