AnyRTC --- Flutter实时消息(仿微信、QQ)

599 阅读2分钟

前言 

上一篇给大家带来了一遍介绍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流程,以及可以简单的开发出实时消息。