• 通过Netty、WebSocket实现服务端和客户端长连接的一种方法


    WebSocket与Http、Socket的区别和联系

    WebSocket同HTTP一样也是应用层的协议,但是它是一种双向通信协议,是建立在TCP之上的。

    WebSocket与HTTP的关系

    相同点

    1. 都是一样基于TCP的,都是可靠性传输协议。
    2. 都是应用层协议。

    不同点

    1. WebSocket是双向通信协议,模拟Socket协议,可以双向发送或接受信息。HTTP是单向的。
    2. WebSocket是需要握手进行建立连接的。

    联系

    WebSocket在建立握手时,数据是通过HTTP传输的。但是建立之后,在真正传输时候是不需要HTTP协议的

    WebSocket与Socket的关系

    Socket其实并不是一个协议,而是为了方便使用TCP或UDP而抽象出来的一层,是位于应用层和传输控制层之间的一组接口

    Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,
    它把复杂的TCP/IP协议族隐藏在Socket接口后面,对用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。
    

    Socket是传输控制层协议,WebSocket是应用层协议。

    短连接与长连接

    短连接

    连接——>传输数据——>关闭连接
    HTTP是无状态的,浏览器和服务器每进行一次通信,就建立一次连接,但通信结束就中断连接,这就是短连接。
    也可以这样说:短连接是指socket连接后,发送接收完数据后马上断开连接。

    无状态的意思是:HTTP协议不具备保存之前发送过的请求或响应的功能。每次的请求是相互独立的,第n次的请求结果和第n-1次、第n+1次的请求结果不会互相影响,服务器也不会保存客户端的状态,客户端必须每次带上自己的状态去请求服务器。

    长连接

    连接——>传输数据——>保持连接——>传输数据——>......——>直到某一方关闭连接(一般是客户端关闭连接)

    基于WebSocket实现服务端和客户端长连接

    设计思路

    关键代码实现

    参考

    1、https://blog.csdn.net/wwd0501/article/details/54582912
    2、https://www.jianshu.com/p/c9017df96869

    源代码

    作者:薄荷加冰
    出处:https://www.cnblogs.com/huangjianping/
    版权:本文版权归作者和博客园共有
    转载:本文以学习、研究和分享为主,欢迎转载和各类爬虫,但必须在文章页面明显位置给出原文链接。 如果文中有不妥或者错误的地方还望您指出,以免误人子弟。如果您有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。
  • 相关阅读:
    EF的四种开发模式
    EF4.0、4.3创建表达式树状动态查询总结
    使用vs2010复制粘贴代码时特别卡用一段时间就特别卡重启也没用
    vs2012运行项目提示无法连接 asp.net development server的解决方案
    泛组件技术
    intellij idea 编译 kafka 源码
    mycat 入门使用例子
    单机器搭建 zk 集群
    redis 版的 hello world
    zk observer 节点
  • 原文地址:https://www.cnblogs.com/huangjianping/p/14975823.html
Copyright © 2020-2023  润新知