一、OpenIM 是什么?
OpenIM ,全称一般叫 OpenIM SDK / OpenIM Server,是一个开源的即时通讯(IM)整体解决方案。它的定位不是一个简单聊天框,而是一个:
💬 可用于商业系统的 IM 基础能力底座
GitHub 地址:
https://github.com/OpenIMSDK
http://OpenIMSDK
二、核心能力
它支持:
-
单聊
-
群聊
-
好友系统
-
会话列表
-
离线消息
-
多端同步
-
消息撤回
-
已读回执
-
语音/图片/文件
-
WebRTC 音视频(可扩展)
三、优点
-
代码全部开源,永久免费
-
支持高并发
-
社区活跃
-
Docker 支持
-
多端 SDK 很齐全
四、缺点(实话实说)
-
部署复杂(微服务 + Kafka)
-
运维成本高
-
资源占用不小
-
文档不算特别清晰(踩坑不少)
-
升级版本容易改配置
五、适合什么场景?
适合:
-
商业IM
-
需要完整聊天体系
-
多端同步
-
有运维能力
不适合:
-
只是简单聊天
-
小项目
-
单服务器轻量需求
六、docker 快速部署
官方提供了快速部署的包:
# 我是在/opt目录下执行的
cd /opt
git clone https://github.com/openimsdk/openim-docker

直接运行:
cd /openim-docker
docker compose down
docker compose up -d
它用到了非常多的依赖,比如redis\minio\etcd\kafka等等。因此如果你的服务器是干净的话,那下载完镜像就会正常启动了,但是如果你服务器上docker已经运行了部分实例,那得改改docker compose 配置文件。
停止服务:
docker compose down
我以redis为例:

我这里有个名为redis的实例,端口占用的是6379。
这个实例又不能删掉。因此我们只能修改openim的配置:
vim docker-compose.yaml
首先是修改实例名、然后改相应端口等等。熟悉docker的朋友应该是没什么问题。

操作完基本上就可以正常启动了:

这个是启动健康检查的状态。等待1-2分钟即可:

七、相关默认参数\端口
WebSocket 地址一般是:
ws://你的服务器IP:10001
HTTP API:
聊天demo:
