一、装逼前先热热身
无论是比较传统的 web项目 还是近几年流行的前后端分离,后端只独立提供数据交互接口服务的项目,都避免不了数据之间交互格式的选择。
- 从很早之前的 xml 格式
- 到现在最火热的json格式
我们可以发现数据格式都是越来越 “短小精悍” 。当然我们可能在某些特定的业务场合,比如对延时要求特别高的场景
- H5多人对战类型游戏
- 实时的数据信息交互场景 语音聊天、以及难度更高的视频聊天等
或者对传输数据大小有一定限制的业务场所;那么这时候我们就可以使用websocket 进行信息数据的交互;不过使用传统的websocket +json字符串的方式来进行数据交互的话,无论是网络带宽的占用以及响应的时间上来说都比不上使用byte字节数组交互数据的方式;当然,对于很早之前的web前端,并不能很好的处理byte字节数组,不过随着H5的到来我们在JavaScript上也可以很好的对二进制数据进行操作
二、具体实现步骤
- spring boot 依赖加入
- WebSocket config配置
- WebSocket接口类简单实现
- 前端JavaScript具体实现
- 1、spring boot 依赖加入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
- 2、 WebSocket config配置
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Configuration
public class WebConfig {
@Bean
public ServerEndpointExporter serverEndpointExporter() {
return new ServerEndpointExporter();
}
}
- 3. WebSocket接口类简单实现