前言
上一篇给大家带来了一遍介绍AnyRTC Flutter RTC(音视频通话)的简介和简单的使用,这篇给大家介绍一下AnyRTC Flutter RTM(实时消息)的简单使用。搞懂了并且和熟悉了Flutter SDK 以后就可以想微信、QQ这样进行视频和消息的通讯。
简介
Flutter的优点在这里我就不介绍了,上一篇Flutter RTC已经讲解,并且介绍RTC和RTM封装了各种平台的SDK。这篇主要讲解一下RTM封装了Flutter SDK的使用。
GitHub地址
Flutter RTM GitHub地址:github.com/anyRTC/Flut…
Demo地址同上!
Flutter RTM SDK
下面介绍 使用Flutter RTM SDK来实现实时消息的通讯
1.创建客户端实例
////* AppID * anyRTC 为 App 开发者签发的 App ID。每个项目都应该有一个独一无二的 App ID。如果你的开发包里没有 App ID,请从anyRTC官网(https://www.anyrtc.io)申请一个新的 App ID
_client = await ARRtmClient.createInstance("Your APPID");
2.登录AR系统
try {
//登录系统
await _client.login(null, userId);
_log('Login success: ' + userId);
setState(() {
_isLogin = true;
});
} catch (errorCode) {
_log('Login error: ' + errorCode.toString());
}
3.点对点消息
RtmMessage message = _client.createMessage();
-
createMessage:创建并返回一个空文本 RtmMessage 消息实例。
_client.onMessageReceived = (ARRtmMessage message, String peerId) { _log("Peer msg: " + peerId + ", msg: " + message.text); }; _client.onConnectionStateChanged = (int state, int reason) { _log('Connection state changed: ' + state.toString() + ', reason: ' + reason.toString()); if (state == 5) { //SDK 停止登录 AR RTM 系统。 _client.logout(); _log('Logout.'); setState(() { _isLogin = false; }); } };
-
onMessageReceived:收到点对点消息回调、
-
onConnectionStateChanged:SDK 与 AR RTM 系统的连接状态发生改变回调。
4.频道(群聊)消息
Future<ARRtmChannel> _createChannel(String name) async {
ARRtmChannel channel = await _client.createChannel(name);
channel.onMemberJoined = (ARRtmMember member) {
_log(
"Member joined: " + member.userId + ', channel: ' + member.channelId);
};
channel.onMemberLeft = (ARRtmMember member) {
_log("Member left: " + member.userId + ', channel: ' + member.channelId);
};
channel.onMessageReceived =
(ARRtmMessage message, ARRtmMember member) {
_log("Channel msg: " + member.userId + ", msg: " + message.text);
};
return channel;
}
-
createChannel:创建一个 RtmChannel 频道实例。
-
onMemberJoined:远端用户加入频道回调。
-
onMemberLeft:远端频道成员离开频道回调。
-
onMessageReceived:收到频道消息。
总结
到现在大家可以根据Flutter RTM Demo和这边文章,可以大概熟悉RTM流程,以及可以简单的开发出实时消息。