• Qt+腾讯IM开发笔记(一):腾讯IM介绍、使用和Qt集成腾讯IM-SDK的工程模板Demo


    前言

      开发一个支持全国的IM聊天,可以有基本的功能,发送文本、图片、文件等等相关内容。

     

    腾讯IM产品

    概述

      腾讯即时通信IM是腾讯推出的即时聊天程序,当前时间为2020年3月(腾讯IM的优惠活动和售卖方案不同时期会有变化)。
      该IM提供各端接入接口、稳定必达、覆盖全球的即时通信云服务上。

    应用场景

      包括但不限于以下场景:
      在这里插入图片描述
      在这里插入图片描述

    特点

    消息传输

      支持文字、图片、短语音、短视频等富媒体消息及自定义消息与自定义表情,支持保存历史漫游消息,集成消息撤回、消息转发、安全打击等扩展能力,构建稳定、便捷的消息传输通道。
      在这里插入图片描述

    会话管理

      集成 TUIKit 组件,轻松实现添加会话、会话置顶、会话列表展示,未读消息计数,历史漫游消息展示等功能。
      在这里插入图片描述

    群组管理

      支持群成员管理、群组自定义字段、群资料与群公告变更与展示、群组置顶等能力,提供私有群、公开群、聊天室、音视频聊天室等多种群组类型,满足个性化群组需要。
      在这里插入图片描述

    资料管理

      支持设置用户资料、更改头像,可配置好友关系,提供好友验证选项,适配您的业务场景。
      在这里插入图片描述

    旗舰版和专业版功能对比

      即时通信 IM 套餐包分为体验版、专业版和旗舰版,创建应用后默认为体验版(免费),您可以根据实际业务需求选择不同的套餐包。
      在这里插入图片描述

    构架

      即时通信 IM 提供全球接入、单聊、群聊、消息推送、资料关系链托管、帐号鉴权等全方位解决方案,并提供完备的 App 接入、后台管理接口。
      在这里插入图片描述

    费用

      从2018年9月14日之后,注册sdkappid的客户都需要购买预付费吧,999,之前的不用,意味着,你想自己做Demo先出999吧,如下图:
      在这里插入图片描述

     

    使用腾讯IM准备

      产品简介: https://cloud.tencent.com/document/product/269/1498
      价格说明: https://cloud.tencent.com/document/product/269/11673
      应用场景: https://cloud.tencent.com/document/product/269/32579
      Demo 体验: https://cloud.tencent.com/document/product/269/36852
      接入SDK:https://cloud.tencent.com/document/product/269/37176

    腾讯IM服务的SDKAppID和秘钥

      在这里插入图片描述

    腾讯开发文档

      https://cloud.tencent.com/document/product/269/37176
      下载SDK

    IM SDK基本概念

    会话

      会话(Conversation)分为两种:

    • 一种是 C2C 会话,表示单聊情况自己与对方建立的对话,读取消息和发送消息都是通过会话完成;
    • 一种是群会话,表示群聊情况下,群内成员组成的会话,群会话内发送消息群成员都可接收到。如下图所示,一个会话表示与一个好友的对话;
        在这里插入图片描述

    消息

      IM SDK 中消息(Message)表示要发送给对方的内容,消息包括若干属性,如是否自己已读,是否已经发送成功,发送人帐号,消息产生时间等;一条消息由若干Elem组合而成,每种Elem可以是文本、图片、表情等等,消息支持多种 Elem组合发送。
      在这里插入图片描述

    群组ID

      群组 ID 唯一标识一个群,由后台生成,创建群组时返回。

    IM SDK使用说明

      在这里插入图片描述
      在这里插入图片描述

    IM SDK接口

      文档地址:https://cloud.tencent.com/document/product/269/33543
      如果接口的参数字符串包含中文,请使用 UTF-8 编码。

    事件回调接口

      在这里插入图片描述

    IM SDK 初始化相关接口

      在这里插入图片描述

    登录登出相关接口

      在这里插入图片描述

    会话相关接口

      在这里插入图片描述

    消息相关接口

      在这里插入图片描述

    群组相关接口

      在这里插入图片描述

    用户资料相关接口

      在这里插入图片描述

    关系链相关接口

      在这里插入图片描述

     

    模块化

      在这里插入图片描述

    Demo关键代码

    tencentIMManager.pri

    # ImSDK
    INCLUDEPATH += $$PWD/ImSDK/includes
    HEADERS += 
        $$PWD/ImSDK/includes/TIMCloud.h 
        $$PWD/ImSDK/includes/TIMCloudCallback.h 
        $$PWD/ImSDK/includes/TIMCloudComm.h 
        $$PWD/ImSDK/includes/TIMCloudDef.h
    
    LIBS += -L$$PWD/ImSDK/lib/Win32/Release 
            -limsdk
    
     

    工程模板V1.0.0

      对应该模块的的V1.0.0

     

    入坑

    入坑一:登录鉴权的问题

    问题

      登陆时,回调错误70003
      在这里插入图片描述

    原因

      每次登录,需要输入userId和UserSig,UserSig为依赖userId生成的,两者和二唯一被认为是唯一可靠的认证,才可以登录。

    解决方法

      本地生成userSig,做大型聊天防止破解等提高安全性,则可以让后台向腾讯生成userSig,以保证可靠。
      在这里插入图片描述
      将两文件,融入到代码中。

    入坑二:编译权鉴获取时缺库“bcrypt”

    问题

      在这里插入图片描述

    解决

      在这里插入图片描述
      Qt的环境自带了,库文件添加进去

    入坑三:编译鉴权获取时缺库“zlib”

    问题

      在这里插入图片描述

    原因

      缺少zlib库,需要自己编译

    解决

      笔者之前曾经编译过,直接赋值拿过来即可,读者编译请参照博文:《zlib开发笔记(一):zlib库介绍、编译和工程模板
      添加头文件路径和库

    入坑四:登陆时报错70003

    问题

      在这里插入图片描述

    原因

      中文的userId。

    解决

      只能使用英文数字id,不能使用中文。

    入坑五:登陆时报错70003

    问题

      在这里插入图片描述

    原因

      在这里插入图片描述

    解决

      使用std::string
      在这里插入图片描述

     

    若该文为原创文章,转载请注明原文出处
    本文章博客地址:https://hpzwl.blog.csdn.net/article/details/119305601

  • 相关阅读:
    原生JS实现new方法、new一个对象发生的四部、new里面常用的优先级
    svg image标签降级技术
    ReflectionToStringBuilder使用
    记一次未解决的异常:java.lang.NoClassDefFoundError: net/sf/json/JSONObject
    eclipse安装Run-Jetty-Run插件,修改实时生效
    jdbcTemplate:包含占位符的SQL无法打印参数信息
    jdbcTemplate异常:like模糊查询报错(Parameter index out of range (1 > number of parameters)
    Spring整合MyBatis
    springmvc整合slf4j、log4j记录文本日志
    Java环境配置
  • 原文地址:https://www.cnblogs.com/qq21497936/p/15088435.html
Copyright © 2020-2023  润新知