几年前,所有请求都是由浏览器端启动的,并且浏览器本身没有能力接受请求。因此,Ajax旋转实现了一些特殊需求。
例如,对于需要实时更新的某些数据(例如Facebook/Twitter更新,股票价格更新,新博客文章,事件结果等)。例如,我们通过页面启动定时任务。如果前端想知道任务背景的真实时间运行状态,我们需要经常建立与服务器的HTTP连接,以询问是否使用较小的间隔完成了计时任务,然后更新页面状态。这样做的结果是浪费大量流量并对服务器造成巨大压力。
在广泛推广HTML5之后,我们可以使用服务器积极推广数据以解决上述问题。
1.完整的双重 - 工作通信:WebSocket完整-DOPLEX,完整-Duplex是两条通信,HTTP协议是“ Walkie -talkie”之间的调用,然后我们的Websock是手机。本质上,这是一个附加的TCP连接。建立和结束时,握手使用HTTP协议。其他数据传输不使用HTTP协议,这更复杂。它更适合需要复杂的两种型实时数据通信的方案2。服务器主动推送:SSE(服务器发送事件)HTML5新标准,该标准用于实时将数据从服务器实时推送到浏览器端,并直接基于当前的HTTP Connection。服务器。服务器保留此请求,直到准备好新消息并将消息返回给客户端为止。目前,连接尚未关闭,并且仍将其保留在其他消息中。SSE的主要功能是反复使用连接处理每个消息(也称为事件)。
sse no()no(服务器单向)否(Firefox支持交叉域)Low Websocket IS()略高,但IE和Edge浏览器不支持SSE。
ssetest.html
执行异常连接超时的全局处理
http:// localhost:8888/sse/test
http:// localhost:8888/sse/付款
打开Websocket功能
WebSocketerver内容的一些核心代码,WebSocket服务器代码
客户端代码,进行几个实验,自然了解代码的含义,不要首先查看代码,请先查看效果。public/wstst/html
http:// localhost:8888/wstst.html