在整合之前需要搞清楚下面几个问题:
1、Socket是什么
2、为什么有了http还要用Socket
3、springBoot整合WebSocket主要作用
一、Socket是什么
是为了实现网络协议(例如HTTP,IP协议)的通信而建立起来的通信通道,Socket是一种连接模式,不是协议,可以根据例如HTTP协议建立连接通道,也可以根据TCP协议简历Socket通道,可以创建任意协议的通道。
二、HTTP与Socket有什么不同
1、HTTP简述
是通过网站地址(URL)从Web服务器上将网页代码提取出来,并翻译成漂亮的网页
浏览器(客户端)通过HTTP协议通过URL向服务器发送请求
服务器再返回相对应的数据
2、HTTP和Socket优缺点
HTTP的缺点:
只能从客户端发起通信,不能通过HTTP协议让服务器主动向客户端推送消息
只有通过"轮询"获取服务器最新信息,也就是每隔一段时间向服务器发出一个请求,看看有没有最新的信息
这样效率低,还浪费资源
一个Request请求只有一个Response,虽然在HTTP1.1中进行了改进,在一个HTTP连接中,可以发送多个Request,接收多个Response,但是还是一个Request只能有一个Response,而且Response一直是被动的,不能主动发起
WebSocket优点:
WebSocket可以让服务器主动向客户端推送消息,客户端也可以主动向服务器发送信息
3、WebSocket和Ajax轮询和Long Poll
ajax轮询也可以实现让浏览器每隔几秒就发送一次请求,查看有没有新信息,为什么还要用websocket呢?
ajax轮询 需要服务器有很快的处理速度和资源。(速度)
long poll 需要有很高的并发,也就是说同时接待客户的能力。(场地大小)所以ajax轮询 和long poll 都有可能发生这种情况:
在客户端去请求服务端的时候,服务端会一直处于繁忙中
技术链接:
http://www.runoob.com/html/html5-websocket.html
http://www.ruanyifeng.com/blog/2017/05/websocket.html