Demo应用服务,模拟客户的应用服登录处理逻辑及部分二次开发示例。

heavyrain.lee efa0fe8b3c Create build.yml há 5 anos atrás
.github efa0fe8b3c Create build.yml há 5 anos atrás
config c34fb4fade Merge branch 'session' há 5 anos atrás
src 7915220ba8 使用uuid默认用户名 há 5 anos atrás
.gitignore c7332362c5 add session há 5 anos atrás
LICENSE 83265b3922 Initial commit há 6 anos atrás
README.md fdb74f9298 更新版本号0.40 há 5 anos atrás
aliyun_sms.md 3f463d059f 添加阿里云短信配置 há 5 anos atrás
mvnw 83265b3922 Initial commit há 6 anos atrás
mvnw.cmd 83265b3922 Initial commit há 6 anos atrás
pom.xml 869de2c56d update version to 0.41 há 5 anos atrás

README.md

野火IM后端应用

作为野火IM的后端应用的演示,本工程具有如下功能:

  1. 短信登陆和注册功能,用来演示登陆应用,获取token的场景.
  2. PC端扫码登录的功能.
  3. 群公告的获取和更新功能.
  4. 客户端上传日志功能. > 本工程为Demo工程,实际使用时需要把对应功能移植到您的应用服务中。如果需要直接使用,请按照后面的说明解决掉性能瓶颈问题。

编译

mvn package

短信资源

应用使用的是腾讯云短信功能,需要申请到appid/appkey/templateId这三个参数,并配置到tencent_sms.properties中去。用户也可以自行更换为自己喜欢的短信提供商。在没有短信供应商的情况下,为了测试可以使用superCode,设置好后,客户端可以直接使用superCode进行登陆。上线时一定要注意删掉superCode

修改配置

本演示服务有4个配置文件在工程的config目录下,分别是application.properties, im.properties, aliyun_sms.propertiestencent_sms.properties。请正确配置放到jar包所在的目录下的config目录下。


#### 运行
在```target```目录找到```app-XXXX.jar```,把jar包和放置配置文件的```config```目录放到一起,然后执行下面命令:

java -jar app-XXXXX.jar ```

性能瓶颈

本服务最早只提供获取token功能,后来逐渐增加了群公告/Shiro等功能,需要引入数据库。为了提高用户体验的便利性,引入了数据库H2,让用户可以无需安装任何软件就可以直接运行(JRE还是需要的),另外shiro的session也存储在h2数据库中。提高了便利性的同时导致一方面性能有瓶颈,另外一方面也不能水平扩展和高可用。因此需要使用本工程上线必须修改2个地方。

  1. 切换到MySQL,切换方法请参考 application.properties 文件中的描述。
  2. 使用RedisSessionDao,详情请参考 https://www.baidu.com/s?wd=shiro+redis&tn=84053098_3_dg&ie=utf-8

版本兼容

0.40版本引入了shiro功能,在升级本服务之前,需要确保客户端已经引入了本工程0.40版本发布时或之后的移动客户端。并且在升级之后,客户端需要退出重新登录一次以便保存session(退出登录时调用disconnect,需要使用false值,这样重新登录才能保留历史聊天记录,一定要在新版本中改成这样)。如果是旧版本或者没有重新登录,群公告和扫码登录功能将不可用。为了系统的安全性,建议升级。

使用到的开源代码

  1. TypeBuilder 一个用于生成泛型的简易Builder

LICENSE

UNDER MIT LICENSE. 详情见LICENSE文件

使用阿里云短信

请参考说明使用阿里云短信