目标
实现一个WebSocket服务中心,支持水平扩展
技术栈
SpringBoot、Netty、JDK8、MySQL、Redis、RabbitMQ、MyBatis-Plus
环境搭建
主要功能点说明
WebSocket连接需要认证
服务端提供token获取接口,WS连接前先获取token
认证信息由服务端提供
Http接口请求需要认证
这里的接口一般就是推送接口
后续可以把推送记录也做成接口进行查询
支持单笔推送
根据注册信息,查询到用户,进行推送
支持批量推送
根据注册信息,查询到用户,进行推送
支持MQ异步推送
支持定时推送
记录推送日志
记录连接日志
支持集群部署
代码设计
WebSocket连接需要认证
开发一个http接口用于获取认证头,WebSocket在注册上来的时候,只有带有正确的认证头,服务端才允许其注册
- 相关设计
- 一张保存了认证信息的表:reg_user
-
- 一个获取token的http接口
-
- 一个判断token是否合法的Service层方法
- reg_user表结构