SpringBoot入门(七)-初识WebSocket

来源:互联网 发布:docker mysql 持久化 编辑:程序博客网 时间:2024/06/16 07:34

现很多网站为了实现即时通讯,所用的技术都是轮询(polling)。轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTPrequest,然后由服务器返回最新的数据给客户端的浏览器。这种传统的HTTPrequest 的模式带来很明显的缺点 浏览器需要不断的向服务器发出请求,然而HTTP requestheader是非常长的,里面包含的有用数据可能只是一个很小的值,这样会占用很多的带宽。

而比较新的技术去做轮询的效果是Comet –用了AJAX。但这种技术虽然可达到全双工通信,但依然需要发出请求。

WebSocketAPI,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。在此WebSocket协议中,为我们实现即时服务带来了两大好处:

1.Header

互相沟通的Header是很小的-大概只有2Bytes

2. ServerPush

服务器的推送,服务器不再被动的接收到浏览器的request之后才返回数据,而是在有新数据时就主动推送给浏览器。

 

下面我们依据官方文档给出的demo,来搭建一个WebSocket+SpringBootHelloWorld工程


1.      创建MAVEN Project

SpringBoot入门(七)-初识WebSocket

SpringBoot入门(七)-初识WebSocket

2.  编辑pom.xml文件,添加相关的websocket依赖和web依赖

SpringBoot入门(七)-初识WebSocket

3.    创建相关类文件-创建HelloMessage, 此类用来封装浏览器发送给服务器的文本信息,当服务器接收到HelloMessage对象后,会立即创建Greeting对象给与服务器连接的其他客户端

SpringBoot入门(七)-初识WebSocket

创建Greeting

SpringBoot入门(七)-初识WebSocket
       

创建WebSocketConfig

SpringBoot入门(七)-初识WebSocket
     

创建SpringBoot程序的主类Application

SpringBoot入门(七)-初识WebSocket
       

 4. src/main/resources/static文件夹下新建index.html

SpringBoot入门(七)-初识WebSocket

SpringBoot入门(七)-初识WebSocket

SpringBoot入门(七)-初识WebSocket
     

5. IDE中直接运行或在命令行中输入mvnspring-boot:run 命令来运行程序,运行效果如下

SpringBoot入门(七)-初识WebSocket

 

 

 

 

 

0 0