唛盟im:涵盖消息发布、消息订阅、消息存储、群聊、私聊、公告推送、群组管理、群员管理、禁言、朋友圈等一站式即时通讯解决方案
唛盟im:涵盖消息发布、消息订阅、消息存储、群聊、私聊、公告推送、群组管理、群员管理、禁言、朋友圈等一站式即时通讯解决方案
💪唛盟生态遵循 “一个底座+N个专业子系统” 的架构,基于同一个底座的各个专业子系统可以任意组合形成一个大的业务系统。👉聊聊唛盟生态1+n架构
以下专业子系统都是基于唛盟底座 + 唛盟低代码 搭建起来的,本工程为其中的研发项目管理子系统后端服务工程
唛盟子系统 | 说明 | 版本 |
---|---|---|
低代码、0代码 | 低代码、0代码框架 | 3.0.0 |
账户、权限、组织管理 | 账户、权限、组织管理,支持多租户 | 3.0.0 |
数据模型 | 表结构设计、表数据增删改查等ddl、dml操作,在线执行sql等 | 3.0.0 |
第三方支付登录等 | 微信支付、支付宝支付、paypal支付、第三方登录 | 3.0.0 |
统一认证中心 | 短信、微信、账号登录 | 3.0.0 |
统一流程中心 | 审批、代办、设计流程、监控流程等 | 3.0.0 |
短信 | 群发消息 | 3.0.0 |
代码生成器 | 自动生成前后端代码 | 3.0.0 |
研发项目管理 | 产品管理、需求管理、任务计划、迭代、测试、效能等 | 3.0.0 |
即时通讯 | 即时通讯、消息、聊天 | 3.0.0 |
财务 | 财务子系统,凭证、报销、会计记账、成本、结算 等 | 3.0.0 |
协同办公 | 办公用品、会议、车辆、资产、档案、用印、采购、绩效等功能 | 3.0.0 |
本工程为后端服务,功能列表以前端介绍为准,请点以下链接可查阅
内置功能
框架 | 说明 | 版本 |
---|---|---|
spring boot | spring boot 框架 | 2.6.11 |
mybatis plus | 数据库操作框架 | 3.5.3.1 |
spring security | 安全框架 | 2.1.7 |
jsqlparse | sql解析引擎 | 4.7+ |
swagger | 接口说明框架 | 2.2.8 |
logback | 日志框架 | 1.2.3 |
jexl13 | 表达式引擎 | 3.1 |
flowable | 流程引擎-可换 | 6.4.2 |
spring cloud | cloud框架-可换 | 2020.0.0 |
spring cloud consul | cloud框架-可换 | 1.10+ |
spring cloud consul | cloud框架-可换 | 1.10+ |
spring oauth2 | 统一认证中心-可换 | 5.2.2 |
netty | socket通讯框架 | 4.1.24.Final |
插件名 | 功能 |
---|---|
idea | java 开发工具 社区版、企业版都可 |
mysql | 数据库 mysql8以上,其它数据库请联系客服 |
子工程 | 功能 |
---|---|
mdp-im-core-service-api | 即时通讯核心api抽象及一些公共工具 |
mdp-im-core-service | 核心服务 |
mdp-im-socket | socket服务启动、初始化等 |
mdp-im-publish | 通讯模型之消息发布端 |
mdp-im-subscriber | 通讯模型之消息订阅端 |
mdp-im-rest-api | 控制层http接口 |
mdp-im-plugin | 通讯模型之消息处理插件,需要添加消息处理,在此工程添加插件 |
mdp-im-plugin-api | 通讯模型之消息处理插件抽象 |
mdp-im-bootstrap | 启动器-单体 |
mdp-im-bootstrap-cloud | 启动器-cloud |
数据库版本mysql8,jdk版本java-8-openjdk-amd64,部署时需要用到redis版本3.0.6以上
# 克隆开发底座项目
git clone https://gitee.com/maimengcloud/mdp-core.git
# 安装开发底座依赖
mvn install
# 克隆oauth2项目(非必须,接入认证中心才需要)
git https://gitee.com/maimengcloud/mdp-oauth2-backend
# 安装oauth2依赖
mvn install
# 克隆cloud项目(非必须,部署cloud版本才需要)
git https://gitee.com/maimengcloud/mdp-cloud-backend
# 安装cloud依赖
mvn install
# 克隆im项目
git clone https://gitee.com/maimengcloud/mdp-im-backend.git
# 安装im依赖
mvn install
# 导入数据库脚本
# 1.创建im库
[im.sql](./sql/im.sql)
# 配置数据库链接链接(需要提前准备数据库)
[application-prod.yml](./mdp-im-bootstrap/src/main/resources/application-prod.yml)
# 启动服务 ⚠注意启动类放在test下面,
找到并运行[ImApplication.java](./mdp-im-bootstrap/src/main/java/com/mdp/ImApplication.java)
http访问端口 http://localhost:7019
socket访问端口 127.0.0.1:3333
mdp.im.port=3333
假设工作空间为/home/m1/
/hom/m1/
├── start-service => 唛盟一键启停脚本存放目录
├── config => spring boot的外置配置文件存放目录
├── lib => jar包存放目录
├── conf => 其它配置文件存放目录
├── consul => consul安装目录
├── logs => 唛盟日志存放目录
├── backup-log => 日志备份存放目录
├── arcfile => 唛盟内容素材上传下载访问的目录(素材存放目录)
├── bin => 一些公共脚本目录,如日志定时清理脚本、微服务注销脚本
# 构建
在mdp-im-backend下执行
mvn instal
# 部署 指部署jar包到nexus私服,如果企业没有nexus私服,则忽略此步骤
在mdp-im-backend下执行
mvn deploy
# 手工发布到测试环境或者生产环境
如果是单体应用则拷贝并推送到服务器上[mdp-im-bootstrap-3.0.0-RELEASE.jar](./mdp-im-bootstrap/target/im-bootstrap-3.0.0-RELEASE.jar)
如果是微服务则拷贝并推送到服务器上[mdp-im-cloud-bootstrap-3.0.0-RELEASE.jar](./mdp-im-cloud-bootstrap/target/im-cloud-bootstrap-3.0.0-RELEASE.jar)
# 启动应用(单体、cloud对jar包的引用不同,需要根据情况修改下脚本bootstrap-im-00.sh,默认是单体)初次部署把./start-service/bootstrap-im-00.sh拷贝到服务器上
sh bootstrap-mdp-im-00.sh
1.如果部署了统一认证中心,需要做配置更改。 统一认证中心相关的配置项:
mdp.jwt.connect-oauth2-server=true|false 如果不需要对接统一认证中心,connect-oauth2-server设为false,则对jwt token的解析将采用HS256算法解密,默认为true
mdp.oauth2.server.uri=统一认证中心的访问地址 如http://127.0.0.1:7000,如果是cloud环境下可以设置为http://oauth2server
mdp:
jwt:
connect-oauth2-server: true
oauth2:
server:
uri: http://127.0.0.1:7000
2.本地起的后端服务pom.xml文件需要引入mdp-client-oauth2 或者mdp-client-oauth2-cloud 单体应用下:
<!-- mdp-client-oauth2 必须放在业务包之上优先加载 -->
<dependency>
<groupId>com.mdp</groupId>
<artifactId>mdp-client-oauth2</artifactId>
</dependency>
cloud环境下
<!-- mdp-client-oauth2-cloud 必须放在业务包之上优先加载 -->
<dependency>
<groupId>com.mdp</groupId>
<artifactId>mdp-client-oauth2-cloud</artifactId>
</dependency>
此场景下,本地起的后端服务需要配置以下几个选项,让本地后端服务对jwt令牌的解析验证调用统一认证中心,否则会报令牌错误。
mdp.jwt.connect-oauth2-server=true
mdp.oauth2.server.uri=统一认证中心的访问地址
此场景下配置根场景1一致
唛盟提供了完整的部署例子mdp-im-cloud-bootstrap
<dependency>
<groupId>com.mdp</groupId>
<artifactId>mdp-boot-starter-cloud</artifactId>
</dependency>
# 网关地址 如果接入cloud,指cpringcloud的gate服务的访问地址 http://gate,如果不接入cloud,这里填写nginx的地址,或者注释掉
mdp.api-gate= http://gate
# 统一认证中心的访问地址 如http://127.0.0.1:7000,如果是cloud环境下可以设置为http://oauth2server
mdp.oauth2.server.uri= http://oauth2server
注意,部署的是*-cloud-bootstrap*.jar包,对应的一键启停脚本也需要做部分修改。具体例子查看bootstrap-xm-00.sh)
唛盟的java代码统一在com.mdp下,异构目录下如何加载唛盟的spring bean 假设企业的业务包在com.ipcm下 有两种办法:
/**
* 要使用mdp平台功能,必须 扫码com.mdp包
* 一些默认公共配置
*/
@ComponentScan(basePackages={"com.mdp"})
@Configuration
public class AutoConfig {
}
服务端支持多语言0编码切换,主要涉及以下内容
在配置文件application-*.yml中指定语言
mdp:
# 站点语言类型cn\en等
site-type: cn
msgtpl.properties
格式为:
mdp.msg.tpl.${tipscode}@${mdp.site-type}=消息内容
举例如下:
mdp.msg.tpl.tipscode1@cn=%s先生/女士,你好,恭喜获得奖励¥ %s
mdp.msg.tpl.tipscode1@en=Hello %s, congratulations on receiving a reward of ¥ %s
${tipscode}来自以下几种地方:
1.BizException.java抛出的异常,唛盟框架会自动匹配语言
throw new BizException(LangTips.errMsg("tipscode1","%s先生/女士,你好,恭喜获得奖励¥ %s","陈天天","1000"));
@RequestMapping(value="/list",method=RequestMethod.GET)
public Result list(){
return Result.ok("tipscode1","%s先生/女士,你好,恭喜获得奖励¥ %s","陈天天","1000");
}
mdp 4.0 版本已经开始规划更新了,尽请期待新版本的诞生吧
xm 4.0 版本已经开始规划更新了,尽请期待新版本的诞生吧
快扫描下方左侧微信二维码和我们一起交流讨论吧!(备注 唛盟-mdp 进群)
唛盟微信公众号查看一些基础教程
反馈 BUG、提出建议,欢迎新建:issues,开发人员会不定时查看回复。
参与贡献,请查看贡献指南。
感谢所有赞赏以及参与贡献的小伙伴,你们的支持是我们不断更新前进的动力!微信扫一扫,赏杯咖啡呗!
序号 | 合作项目 | 详细介绍 | 费用说明 |
---|---|---|---|
1. | 打赏获得赞助商名额 | 在赞助商列表展示(添加微信沟通) | 不限额度 |
2. | 新组件开发 | 提供组件扩展、优化服务 | 视复杂程度而定 |
3. | 开发问题解答 | 如果使用该产品遇到棘手问题需要解决,添加微信进行沟通解决 | 免费 |
4. | 开发培训 | 提供开发流程介绍、技术介绍、功能介绍、部署流程介绍,仅限线上培训 | 加微信详聊 |
5. | 扩展问题解答 | 如果需要使用该产品进行自有业务系统研发,需要我方提供意见建议,我方收取一定费用后提供相应服务 | 加微信详聊 |
6. | 广告合作 | 广告位(精品项目推荐、赞助商展位) | 加微信沟通 |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。