Ter 是一个练习项目,将目前主流的java开发技术进行整合,开发一个集在线聊天、弹幕视频的IM项目。
通过netty实现和前端的websocket连接,包含登录认证、微信扫码登录、实时弹幕发送、消息列表、消息类型、评论、上传下载等功能。
同时还有频控注解、aop日志注解、ip解析归属地等实用的小轮子。
技术 | 说明 | 官网 |
---|---|---|
SpringBoot 3 | web开发必备框架 | https://spring.io/projects/spring-boot |
MyBatis | ORM框架 | http://www.mybatis.org/mybatis-3/zh/index.html |
Spring Security | 一个功能强大且高度可定制的身份验证和访问控制框架 | https://spring.io/projects/spring-security |
Redis | 缓存加速,多数据结构支持业务功能 | https://redis.io |
Caffeine | 本地缓存 | http://caffe.berkeleyvision.org/ |
Nginx | 负载均衡,https配置,websocket升级,ip频控 | https://nginx.org |
Docker | 应用容器引擎 | https://www.docker.com |
Oss | 对象存储 | https://letsencrypt.org/ |
Jwt | 用户登录,认证方案 | https://jwt.io |
Lombok | 简化代码 | https://projectlombok.org |
Hutool | Java工具类库 | https://github.com/looly/hutool |
Swagger-UI | API文档生成工具 | https://github.com/swagger-api/swagger-ui |
Hibernate-validator | 接口校验框架 | hibernate.org/validator/ |
minio | 自建对象存储 | https://github.com/minio/minio |
Netty | 高性能网络应用框架 | https://github.com/netty/netty.git |
本地项目启动后访问:http://localhost:6771/swagger-ui/index.html
将代码克隆到本地
git clone https://github.com/21xiaoye/Ter.git
- 配置文件部分
修改Ter-server\Ter-admin下的application-test.properties文件
因为还在开发过程当中,所以使用application-test.properties配置文件
当部署的时候将使用application-pro.properties配置文件,修改application.yml中 active: test 为 active: pro
- 数据库部分
目前还没有写软件系统接口,所以出现邮箱发送消息失败,往数据库ter_mail_origin表添加相应邮箱源
在生产环境下应关闭p6spy sql打印 、swagger生成文档
- 用户模块(ter-admin)
- 用户注册、用户登录
支持邮箱验证码、微信扫码、密码三种登录方式,实现对用户的认证授权操作
- 视频模块(ter-video)
- 聊天模块(ter-chat)
- 消息推送模块(ter-mq)
- 邮箱推送
- websocket推送
采用工厂模式+策略模式+模板模式,实现多种消息推送方法。
可以对所推送消息可以根据不同的推送方法,制定不同的初始化、风控等操作。