• 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协议的

    记录编程的点滴,体会学习的乐趣
  • 相关阅读:
    子线程循环10次,接着主线程循环100,接着又回到子线程循环10次.....如此循环50次
    java面向对象中的String类中12种常用的方法
    网络编程TCP协议-聊天室
    网络编程(UDP协议-聊天程序)
    Swing布局管理器
    java排序方法中的选择排序方法
    java排序方法中的插入排序方法
    java数组中的三种排序方法中的冒泡排序方法
    css3模仿雨滴(附源码)
    html5+css3实现3D图片(附源码)
  • 原文地址:https://www.cnblogs.com/AduBlog/p/13559330.html
Copyright © 2020-2023  润新知