开源的H5即时聊天系统 spring-boot + netty + protobuf + vue ~
使用前先阅读开源协议: 中文版 , English version , 协议出处 Anti-996-License-1.0
- iOS版本手机QQ中清空不了 Cookie 的bug (Android 版本的QQ没试), 其它浏览器均正常
- 因为设置了定位,
overflow: scroll
原生滚动,iOS下会不流畅,解决办法:换成-webkit-overflow-scrolling: touch;
这个版本管理肯定需要安装的
JDK 8
3.6.1
2.1.2
git clone https://github.com/lmxdawn/him-netty.git
cd him-netty
创建数据库,名称: him, 把 根目录下 scripts 里面的 him.sql 导入进去
mvn -Dmaven.test.skip=true clean package
java -jar him-api/target/him-api-0.0.1-SNAPSHOT.jar
如果要加环境配置 —spring.profiles.active=pro 即可, 默认是 dev 环境。
特别要注意:配置文件里面有跨域配置,这个一定要注意
him-vue 前往 和 him-netty 前往 都启动后访问 http://localhost:8080
注意默认使用 QQ登录, 这个需要去申请QQ互联, 如果不想去申请, 则可以直接设置 Cookie, 两个值 UID 和 SID, 这两个值可以通过接口 /api/user/login/byPwd 获取, 具体请看java 代码
him-api/src/main/resources/ 这里的配置文件里面,
qq.auth.appid
和qq.auth.appkey
配置上即可
详细配置 根目录下的
.env.development
.env.production
.env.stage
这三个文件是配置, 分别代表 本地测试,生产环境,线上测试环境
名称 | 描述 |
---|---|
VUE_APP_API_BASE | API接口地址 |
VUE_APP_WEBSOCKET_URL | websocket地址 |
VUE_APP_USER_QR_CODE_URL | 生成用户的二维码地址(用来加好友的) |
VUE_APP_GROUP_QR_CODE_URL | 生成群二维码的地址(用来加群的) |
VUE_APP_ROUTER_BASE | 如果用了 NGINX 做代理, 并且有二级路径, 则需要配置此项 |
NGINX 做了端口的代理后, header 头 设置了跨域, 但是还是获取不了, 不知道为啥, 欢迎大神来指导
最后我的解决办法, 全部用一个域名, 然后 NGINX 做路径的转换,下面贴一下我的配置
# 前端路径, 注意这里配置了二级目录后, 需要 vue 的路由里面也需要配置
# 我是写在配置文件里面的 VUE_APP_ROUTER_BASE 这个配置项来控制的
location /h5 {
try_files $uri $uri/ /h5/index.html;
}
# API 路径
location /api
{
proxy_pass http://127.0.0.1:9000/api;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
# ws 路径
location /ws
{
proxy_pass http://127.0.0.1:9001;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header X-Real-IP $remote_addr;
}
说明: 目前所有文件都生成好了,不需要在生成,下面简单说明下
java 中使用
下载好 him-netty 后在 protocol 目录下
生成 java 类需要安装 安装 protoc 下载地址:https://github.com/protocolbuffers/protobuf/releases,
目前下载的 v3.7.1,解压到任意目录 ,然后把这个目录添加到环境变量 Path 中
然后 windows 版本执行
proto.bat
即可,Linux/Max 运行sh proto.sh