在线测试地址 http://im.dreamylost.cn 该预览已经是zio实现的zim
敬请关注进阶版:https://github.com/bitlap/zim 基于scala、zio、tapir、circe、akka-http、scalikejdbc、redis实现的纯异步、函数式、流式API的LayIM。
Sim
├─ gradle - 本项目gradle使用6.5.1,高版本有bug,编译不了
├─ .gitattributes - Git仓库显示语言的配置
├─ .gitignore - Git忽略文件的配置
├─ .scalafmt.conf - Scala代码格式化的配置
├─ README.md
├─ build.gradle
├─ deploy.sh - 部署脚本
├─ settings.gradle
└─ src
├─ main
│ ├─ resources
│ │ ├─ application.conf - Websocket配置:基于Akka实现
│ │ ├─ application.properties - Springboot程序配置
│ │ ├─ data.sql - 初始化数据
│ │ ├─ favicon.ico
│ │ ├─ layim.png
│ │ ├─ mapper - mybatis mapper文件
│ │ └─ schema.sql - 初始化表结构
│ ├─ scala
│ │ └─ io.github.dreamylost - 代码实现
│ │ └─ io.github.dreamylost.websocket - websocket代码实现
│ └─ webapp
│ ├─ WEB-INF - 聊天记录和背景页
│ ├─ index.html - 首页
│ └─ static - 静态资源文件
└─ test
配置Mysql数据库,Redis以及邮件服务器,如果不需要邮件相关服务,可以在UserService.scala中注释掉相关的代码
websocket
schema.sql
和 data.sql
文件从resources/sql/
目录移动到resources/
,初始化表结构和数据,如需要自己mock数据,参考 RandomData.scala
构造application.conf
和application.properties
配置Application.scala
http://localhost:8080
选取t_user表中的任意一条数据,如:
15906184943@sina.com
123456
(所有mock数据都是一个密码)status
状态改为nonactivated
(需要激活才能登录,要配置JavaMail)注意:
- 使用环境参数
spring.profiles.active=dev
,拷贝一份配置命名为application-dev.properties
,修改数据库信息- 修改model类后需要清理build目录的class文件
- 数据库每次启动自动格式化,不需要格式化就删掉resources下的
schema.sql
和data.sql
觉得OK点个赞即可,有问题可以创建issue。
# 在Sim目录执行
bash deploy.sh 1.3.0 # 1.3.0表示最新版本号
scalikejdbc
替代mybatis
HTML
替代余下的jsp
akka-http
替代springmvc
zio
替代springboot
zio-ftp
存储图片和文件,移除scala.util.Using
circe
替代Jackson
zio-crypto
替代spring-security
zio-redis
替代jedis
sbt
替代gradle
zio-logging
、zio-actors