• WebSocket简介


    【介绍】

    websocket是一种在单个 TCP 连接上进行全双工通讯的协议,主要是为了弥补http协议上的不足之处

    【为什么选择WebSocket】

    可以实现服务端主动给客户端推送消息。一般应用都是客户端主动向服务端获取消息,而不是服务端实时推送消息,

    这样既不能获取最新消息,又占用资源

    Websocket可以主动向客户端推送消息。

    使用客户端的websocket去连接服务器,一旦连接建立起来,服务器就可以向客户端推送消息,客户端也可以向服务端要数据

    很多网站为了实现推送技术,所用的技术都是 Ajax 轮询。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,

    然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求,

    然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源

    浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据

    当你获取 Web Socket 连接后,你可以通过 send() 方法来向服务器发送数据,并通过 onmessage 事件来接收服务器返回的数据。

    【与socket的区别】

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

    当两台主机通信时,必须通过Socket连接,Socket则利用TCP/IP协议建立TCP连接。TCP连接则更依靠于底层的IP协议,IP协议的连接则依赖于链路层等更低层次。

    总结:

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

     

    【与http区别】

    相同:

    都是一样基于TCP的,都是可靠性传输协议。

    都是应用层协议

    不同:

    WebSocket是双向通信协议,而Http是单向的

    WebSocket是需要握手进行建立连接的

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

    记录编程的点滴,体会学习的乐趣
  • 相关阅读:
    mysql source 乱码
    php5.6.11 openssl安装
    python threading模块的Lock和RLock区别
    python多线程一些知识点梳理
    多核处理器中进程和线程是如何一起工作的?
    IO是否会一直占用CPU?(转)
    Python TypeError: __init__() got multiple values for argument 'master'(转)
    Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解(转)
    浏览器环境下JavaScript脚本加载与执行探析之代码执行顺序(转)
    为什么有的网页右击没有出现审查元素
  • 原文地址:https://www.cnblogs.com/AduBlog/p/13559330.html
Copyright © 2020-2023  润新知