Skip to content

Qingfengchuiwoxin/websocket

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

websocket

是真正实现了全双工通信的服务器向客户端推的互联网技术。

  1. 全双工:简单地说,就是可以同时进行信号的双向传输(A->B且B->A),是瞬时同步的。
  2. 单工、半双工:一个时间段内只有一个动作发生。

推送和拉的区别?

  1. 推:由服务器主动发消息给客户端,就像广播。优势在于,信息的主动性和及时性。
  2. 拉:由客户端主动请求所需要的数据

一、传统的http协议实现方式:
http协议可以多次请求,因为每次请求之后,都会关闭连接,下次重写请求数据,需要再次打开链接。 客户端频繁请求,如果服务端没数据,请求的人数过多,造成服务器压力过大。无畏的请求。(有问有搭)

二、传统的socket技术: 长连接,客户端<---->服务端 都没有交互,会造成资源的浪费。不释放资源,造成服务器的压力。

三、websocket协议实现方式: 它是一种长连接,只能通过一次请求来初始化链接,然后所有的请求和响应都是通过这个TCP链接进行通讯 这意味着它是基于事件驱动,异步的消息机制。 原理:和tcp一样,只需做一个握手动作,就可以形成一条快速通道。

客户端-浏览器的支持 websocket客户端使用的是浏览器,客户端操作的API是html5中新增的API,使用这些API可以让客户端(浏览器) 和服务端(服务器)进行全双工的通讯。 支持的浏览器:chrome、firefox、internet explore 10+、opera、safari。 为了解决兼容性问题,spring websocket基于sockjs protocol提供了兼容性的解决方案

详细的通信过程:

  1. 客户端发送http请求,附加头信息为:"Upgrade websocket"
  2. 服务端解析,并返回握手信息,从而建立连接。
  3. 传输数据(双向)
  4. 客户端或服务端主动断开连接

About

spring+websocket+quartz实现消息的定时推送

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages