# OnlineChat
**Repository Path**: sirwsl/OnlineChat
## Basic Information
- **Project Name**: OnlineChat
- **Description**: 在线聊天系统(后端)
基于websocket+springboot+mybatis进行实现
- **Primary Language**: Unknown
- **License**: MulanPSL-2.0
- **Default Branch**: master
- **Homepage**: https://chat.wslhome.top
- **GVP Project**: No
## Statistics
- **Stars**: 5
- **Forks**: 0
- **Created**: 2021-07-20
- **Last Updated**: 2025-06-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: Java, SpringBoot, WebSocket
## README
## onlineChat在线聊天系统
### 零、主要功能
**1)登录注册、手机登录**
**2)登录在线广播**
**3)个人信息维护修改、账号绑定**
**4)实时在线好友私聊**
**5)实时共同群聊**
**6)添加、删除好友**
**7)创建群聊、添加群聊、删除群聊**
**8)登录、人数等相关统计**
### 一、地址相关
#### **1、项目演示地址:[https://chat.wslhome.top](https://chat.wslhome.top/)**
#### 2、GitHub地址:
#### 前端:https://github.com/sirwsl/OnlineChat-web
#### 后端:https://github.com/sirwsl/OnlineChat
#### 3、码云(Gitee地址):
#### 前端:https://gitee.com/sirwsl/OnlineChat-web
#### 后端:https://gitee.com/sirwsl/OnlineChat
### 二、相关技术
**1、该项目整体技术与框架包括:Ant Design Pro、 SpringBoot、WebSocket、MyBatis Plus、flyway 但不仅限于以上技术框架**
**2、项目整体采用前后端分离模式进行开发,前端主要采用TypeScript+Less文件进行编写,组件采用Ant Design组件进行实现**
**3、后端主要为SpringBoot进行实现,但也涉及到Redis、短信等相关内容**
**4、项目基本数据存储采用MYSQL形式,聊天记录采用本地localStorage的形式进行存储,如果需要可在此基础上加入mongoDB进行聊天数据持久化**
### 三、项目运行与部署
### **项目运行**
#### 1、后端
### 运行之前请移除所有子模块pom文件中的以下部分,否则会报错
```xml
org.springframework.boot
spring-boot-maven-plugin
exec
```
**1)拉取项目**:https://gitee.com/sirwsl/OnlineChat.git or https://github.com/sirwsl/OnlineChat.git
**2)安装依赖** :
```cmake
mvn install
```
**3)修改chat-web 模块下的resource中配置文件**
a) 选择激活环境
```
profiles:
active: pro,all
```
b) 修改config配置文件中对应参数
**4)数据库中创建对应数据库**
**PS:只需要创建数据库,在该系统中采用FlyWay进行数据库版本管理,启动项目后会自动运行flyway文件进行初始化数据库**
**5)找到chat-web模块下Application.java中main函数运行**
#### 2、前端
**1)拉取项目**:https://gitee.com/sirwsl/OnlineChat-web.git or https://github.com/sirwsl/OnlineChat-web.git
**2)安装所需包**
```cmd
npm install
```
**3)修改config中代理相关配置 proxy.ts文件**
```ts
'/api/': {
target: 'http://localhost:8080',
changeOrigin: true,
pathRewrite: {'^/api': ''},
},
```
**4)修改src目录下layouts/BasicLayout.tsx文件与pages/Chat/index.tsx中的webSocket链接进行修改**
```tsx
let listClient = new WebSocket('ws://localhost:8080/xxx/'+userId)
```
**5)运行项目**
```cmd
npm start
```
### 项目构建
### 构建jar包之前请再所有子模块pom文件中添加以下部分,否则会报错
```xml
org.springframework.boot
spring-boot-maven-plugin
exec
```
1、后端项目构建参照chat-web模块下dockerfile文件
dockerfile:
```dockerfile
FROM java:8
MAINTAINER wangshilei
VOLUME /tmp
COPY target/chat-web-1.0-exec.jar onlinechat.jar
RUN bash -c "touch /onlinechat.jar"
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
RUN echo "Asia/Shanghai" >> /etc/timezone
EXPOSE 8001
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","onlinechat.jar"]
```
2、前端项目运行 npm run build后将disc目录复制到nginx的html目录下
nginx中添加代理、nginx配置文件如下:
```nginx
server {
listen 8001;
include mime.types;
default_type application/octet-stream;
sendfile on;
gzip on;
gzip_min_length 1k;
gzip_comp_level 9;
gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
root /usr/share/nginx/html/disc/;
location / {
try_files $uri $uri/ /index.html;
}
location /api {
proxy_pass http://localhost:8001/;
proxy_set_header Host $host:$server_port;
}
location ~ .*\.(images|img|javascript|js|css|flash|media|static|eot|otf|ttf|woff|woff2|map)$ {
root /usr/share/nginx/html/disc/;
autoindex on;
access_log off;
expires 7d;
}
}
server{
listen 80;
return 301 https://xxx$request_uri;
}
```
### 四、作者相关
**项目作者:sirwsl**
**wx:sirwsl (可以一起交流技术、如果是帮忙看问题就别加了,烦的伤)**
**email:sirwsl@163.com (有问题可以进行反馈或者去github提bug)**
**一个初出茅庐的码农,该项目为antDesign与webSocket的实验品,喜欢就给个Star吧**
**个人博客:[https://www.wslhome.top](https://www.wslhome.top/)**
**CSDN:[sirwsl:https://blog.csdn.net/qq_40432886](https://blog.csdn.net/qq_40432886)**
**商城:[https://kill.wslhome.top](https://kill.wslhome.top/)**
**商城后端管理:[https://admin.wslhome.top](https://admin.wslhome.top/)**
**码云地址:https://gitee.com/sirwsl**
**GitHub地址:https://github.com/sirwsl**