什么是悟空IM?
悟空IM是一款通用实时服务,大部分实时通讯场景都能使用到,8年积累,沉淀出来的高性能通用通讯服务,支持即时通讯,站内/系统消息,消息中台,物联网通讯,音视频信令,直播弹幕,客服系统,AI通讯,即时社区等场景。
特点
- 📚 完全自研:自研消息数据库,消息分区永久存储,自研二进制协议(支持自定义),重写Go底层网络库,无缝支持TCP和websocket。
- 🚀 性能强劲:单机支持百万用户同时在线,单机16w/秒消息(包括DB操作)吞吐量,一个频道支持万人同时订阅。
- 🔔 零依赖:没有依赖任何第三方组件,部署简单,一条命令即可启动
- 🔐 安全:消息通道和消息内容全程加密,防中间人攻击和窜改消息内容。
- 🧱 扩展性强:采用频道设计理念,目前支持群组频道,点对点频道,后续可以根据自己业务自定义频道可实现机器人频道,客服频道等等。
Flutter SDK正式发布
开源地址:https://gitee.com/WuKongDev/WuKongIMFlutterSDK
安装
dependencies:
wukongimfluttersdk: ^1.0.4
引入
import 'package:wukongimfluttersdk/wkim.dart';
初始化sdk
WKIM.shared.setup(Options.newDefault('uid', 'token'));
初始化IP
WKIM.shared.options.getAddr = (Function(String address) complete) async {
// 可通过接口获取后返回
String ip = await HttpUtils.getIP();
complete(ip);
};
连接
WKIM.shared.connectionManager.connect();
断开
// isLogout true:退出并不再重连 false:退出保持重连
WKIM.shared.connectionManager.disconnect(isLogout)
发消息
WKIM.shared.messageManager.sendMessage(WKTextContent('我是文本消息'), WKChannel(channelID, channelType));
监听
连接监听
WKIM.shared.connectionManager.addOnConnectionStatus('home',
(status, reason) {
if (status == WKConnectStatus.connecting) {
// 连接中
} else if (status == WKConnectStatus.success) {
// 成功
} else if (status == WKConnectStatus.noNetwork) {
// 网络异常
} else if (status == WKConnectStatus.syncMsg) {
//同步消息中
}
});
消息入库
WKIM.shared.messageManager.addOnMsgInsertedListener((wkMsg) {
// todo 展示在UI上
});
收到新消息
WKIM.shared.messageManager.addOnNewMsgListener('chat', (msgs) {
// todo 展示在UI上
});
刷新某条消息
WKIM.shared.messageManager.addOnRefreshMsgListener('chat', (wkMsg) {
// todo 刷新消息
});
命令消息(cmd)监听
WKIM.shared.cmdManager.addOnCmdListener('chat', (cmdMsg) {
// todo 按需处理cmd消息
});
其他相关SDK
| 项目名 |
Github地址 |
Gitee地址 |
开源协议 |
说明 |
| WuKongIM |
Github |
Gitee |
Apache2.0 |
悟空IM通讯端,负责长连接维护,消息投递等等 |
| WuKongIMAndroidSDK |
Github |
Gitee |
Apache2.0 |
悟空IM的Android SDK |
| WuKongIMiOSSDK |
Github |
Gitee |
Apache2.0 |
悟空IM的iOS SDK |
| WuKongIMUniappSDK |
Github |
Gitee |
Apache2.0 |
悟空IM的 Uniapp SDK |
| WuKongIMJSSDK |
Github |
Gitee |
Apache2.0 |
悟空IM的 JS SDK |