Flutter即时通讯插件cim_flutter_sdk的使用

Flutter即时通讯插件cim_flutter_sdk的使用

开源通讯库 CIM 的 Flutter 版本 SDK。

WebSocket版本

可以在 这里 找到。

如何在自己的项目中引用SDK

pubspec.yaml 文件中引入:

dependencies:
  cim_flutter_sdk: ^1.0.6

如何使用

首先,在项目中导入 cim_flutter_sdk 包,并初始化 CIMSocket 对象。以下是一个完整的示例代码:

import 'package:cim_flutter_sdk/cim_socket.dart';
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  late CIMSocket? cimSocket = null;

  late List<String> list = [];

  late bool connectStatus = false;

  [@override](/user/override)
  void initState() {
    super.initState();
    // 初始化 CIMSocket 对象
    cimSocket = CIMSocket(
      onMessageReceived: (value) {
        setState(() {
          // 添加接收到的消息到列表
          list.add(value.toProto3Json().toString());
        });
      },
      onConnectionStatusChanged: (value) {
        setState(() {
          // 更新连接状态
          connectStatus = value;
        });
      },
    );

    // 设置服务器地址、端口和应用ID
    cimSocket!.init('api.hoxin.farsunset.com', 34567, '16501516154949');

    // 连接服务器
    cimSocket!.connect(
        devicename: "Windows 10 Pro",
        appVersion: "2.1.0",
        osVersion: "10.0.19042.1165",
        packageName: "com.farsunset.flutter",
        deviceid: "asd52d1d0a6s1f6sdf1",
        language: "zh_CN");
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text(connectStatus ? '已连接' : '未连接'),
        ),
        body: ListView.builder(
          itemCount: list.length,
          itemBuilder: (context, index) {
            return Text(list[index]);
          },
        ),
      ),
    );
  }
}

更多关于Flutter即时通讯插件cim_flutter_sdk的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter即时通讯插件cim_flutter_sdk的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


cim_flutter_sdk 是一个用于在 Flutter 应用中实现即时通讯功能的 SDK。它提供了与 CIM 服务器进行实时通讯的能力,支持消息的发送、接收、以及用户状态的同步等功能。以下是如何在 Flutter 项目中使用 cim_flutter_sdk 的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 cim_flutter_sdk 的依赖:

dependencies:
  flutter:
    sdk: flutter
  cim_flutter_sdk: ^版本号

请将 ^版本号 替换为最新的 cim_flutter_sdk 版本号。

2. 初始化 SDK

main.dart 或其他入口文件中,初始化 cim_flutter_sdk

import 'package:cim_flutter_sdk/cim_flutter_sdk.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();

  // 初始化 CIM SDK
  await CIM.init(
    appId: 'your_app_id',
    appSecret: 'your_app_secret',
  );

  runApp(MyApp());
}

确保替换 your_app_idyour_app_secret 为你在 CIM 服务器上注册的应用 ID 和密钥。

3. 登录与认证

在使用 SDK 发送或接收消息之前,用户需要进行登录:

Future<void> login() async {
  try {
    await CIM.login(
      userId: '用户ID',
      nickname: '用户昵称',
      avatarUrl: '用户头像URL',
    );
    print('登录成功');
  } catch (e) {
    print('登录失败: $e');
  }
}

4. 发送消息

使用 CIM.sendMessage 方法发送消息:

Future<void> sendMessage() async {
  try {
    await CIM.sendMessage(
      receiverId: '接收者ID',
      content: '你好,这是一条测试消息',
      messageType: MessageType.text,
    );
    print('消息发送成功');
  } catch (e) {
    print('消息发送失败: $e');
  }
}

5. 接收消息

使用 CIM.onMessageReceived 监听接收到的消息:

void listenForMessages() {
  CIM.onMessageReceived.listen((CIMReceivedMessage message) {
    print('收到新消息: ${message.content}');
  });
}

6. 用户状态同步

你可以使用 CIM.onUserStatusChanged 监听用户状态的变化:

void listenForUserStatus() {
  CIM.onUserStatusChanged.listen((CIMUserStatus status) {
    print('用户状态变化: ${status.userId} - ${status.status}');
  });
}

7. 其他功能

cim_flutter_sdk 可能还支持其他功能,如群组聊天、消息撤回、历史消息查询等。具体功能请参考官方文档或 SDK 的 API 文档。

8. 处理错误

在使用 SDK 时,可能会遇到各种错误。建议在使用 try-catch 块捕获并处理这些错误,以确保应用的稳定性。

try {
  // 使用 SDK 功能
} catch (e) {
  print('发生错误: $e');
}

9. 注销与清理

在用户退出应用或不再需要即时通讯功能时,调用 CIM.logout 方法进行清理:

Future<void> logout() async {
  try {
    await CIM.logout();
    print('注销成功');
  } catch (e) {
    print('注销失败: $e');
  }
}

10. 调试与日志

如果需要进行调试,可以开启 SDK 的调试模式:

CIM.setDebugMode(true);
回到顶部