授权 | 开源 |
大小 | 5.57MB |
语言 | Java |
oim-server是OIM聊天系统的服务端,Java语言开发,Spring Cloud 微服务架构,只要机器够,用户不是问题。
OIM服务是采用Java语言开发,基于spring cloud微服务体系开发的一套即时通讯服务端。 从单机到微服务都提供了可部署方案,并且单机、微服务都可以平滑切换,客户端可以毫无感知服务变更。
特点
oim-server 可以让你像spring mvc一样开发即时通讯接口,对于有web后台开发经验,没用即时通讯服务端经验开发者,可以 轻松转换,并且兼容spring web接口。如下示例
请求接口
@RestController
public class UserController {
/**
*
* 登录<br>
* Date 2019-02-17 12:26:38<br>
*
* @param user
* @since 1.0.0
*/
@ActionMapping(value = "/user/login") // 此路同样可以用http post请求
public User login(
@Define("body.user") User user) { // "body.user"(此body是json内的body字段,不是http协议的body)
// 是http或者tcp中的消息体json属性路径{"body":{"user":{}}}
// ...省略实现内容
return user;
}
}
目录说明
|__oim-server-run # Java服务
|__cloud #微服务运行版
|__common #公共依赖的jar
|__oim-server-element-basic-* #这些是单机和微服务都依赖部分,含一些抽象定义,微服务和单机有不同实现
|__oim-server-element-cloud-* #这些是微服务所需的依赖,针对微服务的一些实现
|__service #每个运行的微服务
|__core #主要是技术管理类型微服务 如:注册中心、网关等
|__action #收集所有服务的接口地址,这样网关可以无需配置服务名,直接通过接口地址访问到对应的服务
|__admin #只是集成了spring boot admin
|__center #注册中心
|__gateway #网关
|__net #即时通讯的TCP、WebSocket等长连接服务
|__control 用于管理(net-work)用户客户端长连接服务
|__work 用户客户端长连接服务
|__support #公共支持服务 如:文件上传
|__file
|__system #针对整个系统的配置、共数据等
|__setting #
|__work #业务服务(因为business太长了,还有其他地方容易用到这个名字)
|__chat #聊天业务
|__contact #联系人
|__core #核心:用户
|__group #群
|__portal #服务地址入口
|__single #单机版
|__oim-server-single-main # 因为单机和微服务的功能模块是共用的,这里是针对一些抽象的单机实现
|__oim-server-single-running #启动服务配置
|__oim-server-web # Vue 后台管理界面
OIM开发说明
1、环境要求:
JDK 1.8.0_xxx
DB 支持MySQL Oracle SQL server 推荐MySQL 8.0
微服务还需以下:
Redis
RabbitMQ
2、关于微服务版和单机版使用
微服务版的业务代码和单机版业务代码是共用的,所以业务模块均在微服务目录下。只是在IM长连接等处理上有区别,所以单机和微服务需要不同处理的
地方抽象成接口,在不同启动服务中各自实现
3、关于部分依赖下载不下来
因为部分依赖尚未发布到maven中央库,而是在我的私库中,所以maven全局配置文件(通常在用户目录下.m2/setting.xml)中不能配置
镜像服务(
私库maven配置项目中已经配置
4、关于数据库脚本
只要先创建好数据库,修改数据库配置、启动自动创建表。目前默认H2数据库创建表有问题,推荐使用MySQL 8.0
相关软件