3.5 KiB
3.5 KiB
悟空IM Flutter Web SDK
[悟空IM]
快速入门
引入
import 'package:wukongimfluttersdk/wkim.dart';
安装方式 1 本地安装 需要手动下载该项目到本地,注意:与你的开发项目在同一目录下
- 打开pubspec 项目目录下找到 pubspec.yaml
- 在 dependencies 中添加
wukongimfluttersdk:
path: ../wkim/
安装方式 2 Git安装 wukongimfluttersdk: git: url: https://git.ssgfgtfy.com/public/wkim.git ref: master
初始化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,connectInfo) {
if (status == WKConnectStatus.connecting) {
// 连接中
} else if (status == WKConnectStatus.success) {
var nodeId = connectInfo?.nodeId; // 节点id
// 成功
} else if (status == WKConnectStatus.noNetwork) {
// 网络异常
} else if (status == WKConnectStatus.syncMsg) {
//同步消息中
} else if (status == WKConnectStatus.syncCompleted) {
//同步完成
}
});
消息入库
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消息
});
- 包含
key
的事件监听均有移除监听的方法,为了避免重复收到事件回掉,在退出或销毁页面时通过传入的key
移除事件
发送消息时间 使用 [网络协议] NTP(Network Time Protocol)协议 使用阿里时间 ntp.aliyun.com ntp1.aliyun.com ntp2.aliyun.com ntp3.aliyun.com ntp4.aliyun.com ntp5.aliyun.com ntp6.aliyun.com ntp7.aliyun.com 用法
DateTime ntpTime = await NTP.now(lookUpAddress: "ntp.aliyun.com",port: 123);
Socket链接逻辑 将socket链接分成两部分: (链接成功之前,链接成功之后)这里是根据是否有返回消息/结合onDone来判断 1.链接成功之前:(链接中) 链接不成功 时 每隔5秒重新链接。即没有返回消息并且onDone触发时会触发 5秒 后断线重连 当 WKIM.shared.connectionManager.disconnect 时会清理掉计时器。 2.链接成功之后 接首到消息返回,开启心跳检测/网络异常监听
许可证
悟空IM 使用 Apache 2.0 许可证。有关详情,请参阅 LICENSE 文件。