目前市面上的即时通讯软件大多数是付费的,当落地项目或者想要私有化部署,有二次开发的需求时,从开源仓库里面查到的,许多要不就是假开源,要不就是功能比较少,很少有比较全面并且支持二次开发的。今天推荐一个可以用于二次开发的开源的即时通讯组件:OpenIM。
项目地址是:
https://github.com/openimsdk/open-im-server
OpenIM
OpenIM有以下优点:
- 完善的文档支持
- 开箱即用
- 业务组件和核心组件分离:open-im-server作为消息功能的支持模块与实现登录、注册等业务模块chat是相分离的利于二次开发和扩展
- 完善的DEMO支持:从flutter到uniapp再到浏览器、小程序基本上都有demo和sdk
- 如果我们对于官方的demo不满意或者有一些自己的服务器端定制功能,或者集成到自己的业务系统,那么官方也提供了完善的api和sdk支持
- 支持添加好友、群聊、单聊、发送文件等功能,还有完善的后台管理支持
效果简介
那么我们先看一下部署后实现的效果:
添加好友
单聊
群聊
后台管理
部署过程
下面我们再说说,如何部署,实则部署过程特别简单:
1. 环境及组件要求
注意事项 |
详细说明 |
操作系统 |
Linux 系统 |
硬件资源 |
至少 4G 可用内存 |
Golang |
v1.19 或更高 |
Docker |
v24.0.5 或更高 |
Git |
v2.17.1 或更高 |
2. docker部署
2.1 克隆仓库并初始化
gitclonehttps://github.com/openimsdk/openim-docker openim-docker &&cdopenim-docker && make init
2.2 设置OPENIM_IP
# 如果服务器有外网IPexportOPENIM_IP="外网IP"# 如果仅提供内网服务exportOPENIM_IP="内网IP"
2.3 启动服务及查看日志
dockercompose up -ddockerpsdockercompose logs -f openim-chatdockercompose logs -f openim-server
3. 快速验证
在浏览器中输入 http://ip:11001 来访问 PC Web。此 IP 为服务端 OPENIM_IP,确保浏览器能访问。首次使用请通过手机号注册,验证码默认为 666666。
4. 管理后台和监控系统
在浏览器中输入 http://ip:11002 来访问管理后台。此 IP 为服务端 OPENIM_IP,确保您的浏览器能访问。默认账号和密码均为 chatAdmin或者admin1。
5. 关于配置项的修改
此项目配置项较为复杂,主要是某些配置项涉及到.env、
openim-chat/config/config.yaml 和
openim-server/config/config.yaml多个文件,配置项的修改说明分为两个部分,分别是共用配置项的修改和其他配置项的修改。
5.1 共用配置项
.env、
openim-chat/config/config.yaml 和
openim-server/config/config.yaml 共用的配置项:
- mysql/mongo/redis/kafka/zookeeper/minio 端口及密码;
- SECRET;
- API_OPENIM_PORT;
- OPENIM_IP;
- MINIO_PORT;
- GRAFANA_PORT
5.2 修改方法
对于5.1共用配置项的修改,以下两种方式二选一。
方式一:所有配置重新生成
如果需要全面更新配置,可以采用以下步骤:
- 删除现有配置文件:删除 openim-server/config/config.yaml 和 openim-chat/config/config.yaml 文件。
- 修改 .env 文件:更新 .env 文件中的相关配置项。
- 重新生成配置并重启服务:执行 docker compose down ; docker compose up -d,这将基于 .env 文件中的新设置重新生成配置文件,并重启服务。
方式二:分别修改多个配置文件
如果只需部分更新配置,可以按照以下步骤操作:
- 修改 .env 文件:更新 .env 文件中的相关配置项。
- 手动更新配置文件:根据 .env 文件的修改,相应地更新 openim-server/config/config.yaml 和 openim-chat/config/config.yaml 文件中的配置项。
- 特殊变量的额外处理:如果修改了 OPENIM_IP、API_OPENIM_PORT、MINIO_PORT、GRAFANA_PORT,则需要在 openim-server/config/config.yaml 中更新以下配置项:
object: apiURL:"http://$OPENIM_IP:$API_OPENIM_PORT"minio: endpoint:"http://$DOCKER_BRIDGE_GATEWAY:$MINIO_PORT"signEndpoint:"http://$OPENIM_IP:$MINIO_PORT"grafanaUrl: http://$OPENIM_IP:$GRAFANA_PORT
- 重启服务:执行 docker compose down ; docker compose up -d 以应用更改并重启服务。
5.3 其他配置项的修改
对于 .env、
openim-chat/config/config.yaml 和
openim-server/config/config.yaml 中的非共用变量,可以单独修改相应文件中的这些配置项。执行 docker compose down ; docker compose up -d 以应用更改并重启服务。
- 最新
- 最热
只看作者