spring
This commit is contained in:
@ -1,36 +1,34 @@
|
||||
# spring websocket(注解方式)
|
||||
# Spring WebSocket(注解方式)
|
||||
|
||||
## 目录<br/>
|
||||
<a href="#一说明">一、说明</a><br/>
|
||||
<a href="#11-项目结构说明">1.1 项目结构说明</a><br/>
|
||||
<a href="#12-依赖说明">1.2 依赖说明</a><br/>
|
||||
<a href="#二spring-websocket">二、spring websocket</a><br/>
|
||||
<a href="#21-创建消息处理类继承自TextWebSocketHandler">2.1 创建消息处理类,继承自TextWebSocketHandler</a><br/>
|
||||
<a href="#22-创建websocket-握手拦截器如果没有权限拦截等需求这一步不是必须的">2.2 创建websocket 握手拦截器(如果没有权限拦截等需求,这一步不是必须的)</a><br/>
|
||||
<a href="#23-创建websocket的配置类">2.3 创建websocket的配置类</a><br/>
|
||||
<a href="#24-前端-websocket-的实现">2.4 前端 websocket 的实现</a><br/>
|
||||
<a href="#25-简单登录的实现">2.5 简单登录的实现</a><br/>
|
||||
## 正文<br/>
|
||||
<nav>
|
||||
<a href="#一项目说明">一、项目说明</a><br/>
|
||||
<a href="#11-项目结构">1.1 项目结构</a><br/>
|
||||
<a href="#12-基本依赖">1.2 基本依赖</a><br/>
|
||||
<a href="#二实现-WebSocket">二、实现 WebSocket</a><br/>
|
||||
<a href="#21-消息处理器">2.1 消息处理器</a><br/>
|
||||
<a href="#22--握手拦截器">2.2 握手拦截器</a><br/>
|
||||
<a href="#23-配置-WebSocket">2.3 配置 WebSocket</a><br/>
|
||||
<a href="#24-前端-WebSocket">2.4 前端 WebSocket</a><br/>
|
||||
<a href="#25-实现简单登录">2.5 实现简单登录</a><br/>
|
||||
</nav>
|
||||
|
||||
## 一、项目说明
|
||||
|
||||
## 一、说明
|
||||
### 1.1 项目结构
|
||||
|
||||
### 1.1 项目结构说明
|
||||
|
||||
1. 项目模拟一个简单的群聊功能,为区分不同的聊天客户端,登录时候将临时用户名存储在 session 当中;
|
||||
2. webconfig 包是基础注解的方式配置 web,在 spring-base-annotation 项目中已经讲解过每个类作用;
|
||||
3. CustomHander 为消息的自定义处理器;
|
||||
4. CustomHandershakerInterceptor 为自定义的 websocket 的握手拦截器;
|
||||
5. webSocketConfig 是 websocket 的主要配置类;
|
||||
6. 项目以 web 的方式构建。
|
||||
- 项目模拟一个简单的群聊功能,为区分不同的聊天客户端,登录时候将临时用户名存储在 session 当中;
|
||||
- webconfig 包是基础注解的方式配置 web,在 spring-base-annotation 项目中已经讲解过每个类作用;
|
||||
- CustomHander 为消息的自定义处理器;
|
||||
- CustomHandershakerInterceptor 为自定义的 websocket 的握手拦截器;
|
||||
- webSocketConfig 是 websocket 的主要配置类;
|
||||
- 项目以 web 的方式构建。
|
||||
|
||||
<div align="center"> <img src="https://github.com/heibaiying/spring-samples-for-all/blob/master/pictures/spring-websocket-annotation.png"/> </div>
|
||||
|
||||
|
||||
### 1.2 基本依赖
|
||||
|
||||
### 1.2 依赖说明
|
||||
|
||||
除了基本的 spring 依赖外,还需要导入 webSocket 的依赖包
|
||||
除了基本的 Spring 依赖外,还需要导入 WebSocket 的依赖:
|
||||
|
||||
```xml
|
||||
<!--spring webSocket 的依赖包 -->
|
||||
@ -43,13 +41,14 @@
|
||||
|
||||
|
||||
|
||||
## 二、spring websocket
|
||||
## 二、实现 WebSocket
|
||||
|
||||
#### 2.1 创建消息处理类,继承自TextWebSocketHandler
|
||||
### 2.1 消息处理器
|
||||
|
||||
继承自TextWebSocketHandler,创建消息处理类:
|
||||
|
||||
```java
|
||||
/**
|
||||
* @author : heibaiying
|
||||
* @description : 自定义消息处理类
|
||||
*/
|
||||
public class CustomHandler extends TextWebSocketHandler {
|
||||
@ -98,11 +97,12 @@ public class CustomHandler extends TextWebSocketHandler {
|
||||
|
||||
```
|
||||
|
||||
#### 2.2 创建websocket 握手拦截器(如果没有权限拦截等需求,这一步不是必须的)
|
||||
### 2.2 握手拦截器
|
||||
|
||||
创建websocket 握手拦截器(如果没有权限拦截等需求,这一步不是必须的):
|
||||
|
||||
```java
|
||||
/**
|
||||
* @author : heibaiying
|
||||
* @description : 可以按照需求实现权限拦截等功能
|
||||
*/
|
||||
public class CustomHandshakeInterceptor extends HttpSessionHandshakeInterceptor {
|
||||
@ -123,13 +123,9 @@ public class CustomHandshakeInterceptor extends HttpSessionHandshakeInterceptor
|
||||
}
|
||||
```
|
||||
|
||||
#### 2.3 创建websocket的配置类
|
||||
### 2.3 配置 WebSocket
|
||||
|
||||
```java
|
||||
/**
|
||||
* @author : heibaiying
|
||||
* @description :websocket 配置
|
||||
*/
|
||||
@Configuration
|
||||
@EnableWebSocket
|
||||
public class WebSocketConfig implements WebSocketConfigurer {
|
||||
@ -141,7 +137,7 @@ public class WebSocketConfig implements WebSocketConfigurer {
|
||||
}
|
||||
```
|
||||
|
||||
#### 2.4 前端 websocket 的实现
|
||||
### 2.4 前端 WebSocket
|
||||
|
||||
```jsp
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
@ -185,9 +181,9 @@ public class WebSocketConfig implements WebSocketConfigurer {
|
||||
|
||||
```
|
||||
|
||||
#### 2.5 简单登录的实现
|
||||
### 2.5 实现简单登录
|
||||
|
||||
```java
|
||||
```jsp
|
||||
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
|
||||
<html>
|
||||
<head>
|
||||
|
Reference in New Issue
Block a user