java 端使用 WebSocket 可以使用以下三种形式:
1、使用 Spring 的底层级 WebSocketAPI 实现(实现 TextWebSocketHandler 接口)
2、使用 Spring 高级API 实现(使用 SimpMessagingTemplate 方法)
3、使用 JSR356 定义的 WebSocket 规范实现
个人认为使用 JSP356 的 WebSocket 规范最为简单。
2.1 JSR356定义的 WebSocket 规范
首先引入依赖:
springboot
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-websocket</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-websocket</artifactId>
<version>4.3.10.RELEASE</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
JSR356 的 WebSocket 规范使用 javax.websocket.* 的 API,可以将一个普通 Java 对象(POJO)使用 @ServerEndpoint 注释从而作为 WebSocket 服务器的端点,此时客户端浏览器已经可以对 WebSocket 客户端 API 发起 HTTP 长连接了,如:
@ServerEndpoint(value="/websocket/commodity/{userId}", configurator = SpringConfigurator.class)
注释中的参数 value 表示的是 url 路径与 @RequestMapping 注释中的 value 类似,而他表示的是前端创建 WebSocket 对象需要传入的 ws 协议的路径。当中的 {userId} 参数作为当前客户的识别 ID 号,此时客户端传入的 url 应该为:
ws://[Server端IP或域名]:[Server端口]/项目/websocket/commodity/{userId}
注意:如果在要进行对象注入,就必须加上 configurator = SpringConfigurator.class。
参考
【spring boot websocket 的使用 - CSDN App】http://t.csdn.cn/XUSQf
扫描二维码,在手机上阅读!
评论