前言

  开发一个支持全国的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

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

  1. SDL开发笔记(二):音频基础介绍、使用SDL播放音频

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  2. 树莓派开发笔记(十七):树莓派4B+上Qt多用户连接操作Mysql数据库同步(单条数据悲观锁)

    前言   安装了mysq数据库,最终时为了实现在一个树莓派上实现多用户多进程操作的同步问题,避免数据并发出现一些错误,本篇安装了远程服务并且讲述了使用Qt进行悲观锁for update操作,命令行进行 ...

  3. 【搜索引擎Jediael开发笔记1】搜索引擎初步介绍及网络爬虫

    详细可参考 (1)书箱:<这就是搜索引擎><自己动手写网络爬虫><解密搜索引擎打桩实践> (2)[搜索引擎基础知识1]搜索引擎的技术架构 (3)[搜索引擎基础知识2 ...

  4. 张高兴的 Xamarin.Forms 开发笔记:TapGestureRecognizer 的简单介绍与应用

    最近很少写应用了,一直在忙关于 ASP.NET 的东西(哈欠...).抽点时间对 TapGestureRecognizer 做点总结. 一.简介 TapGestureRecognizer 就是对 Ta ...

  5. QCustomPlot开发笔记(一):QCustomPlot简介、下载以及基础绘图

    前言   QCustomPlot开发笔记系列整理集合,这是目前使用最为广泛的Qt图表类(Qt的QWidget代码方向只有QtCharts,Qwt,QCustomPlot),使用多年,系统性的整理,过目 ...

  6. 《ArcGIS Runtime SDK for Android开发笔记》

    开发笔记之基础教程 ArcGIS Runtime SDK for Android 各版本下载地址 <ArcGIS Runtime SDK for Android开发笔记>——(1).And ...

  7. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:概述

    1.前言 数据生产和数据展示是常见的两大专业级移动GIS应用场景,这里我们针对数据生产环节的ArcGIS的离在线一体化技术给大家做一个基本的介绍和梳理. 使用ArcGIS离在线一体化技术首先需要以下基 ...

  8. 《ArcGIS Runtime SDK for Android开发笔记》——离在线一体化技术:离线矢量数据同步

    1.前言 上一篇文章中我们实现了离线要素的编辑操作,这一篇中主要介绍离在线一体化技术中最后一个环节离线数据的同步功能,通过对数据的上传,服务器端的版本化管理,实现数据生产管理的整个流程. 转载请注明出 ...

  9. Matlab+Qt开发笔记(一):matlab搭建Qt开发matlib环境以及Demo测试

    前言   做一些数据处理软件,使用matlab文件,.mat文件.   准备条件   安装matlab2016,发现是vs 12(是vs2011版本),Qt5.9.3是支持vs 14(是vs2015版 ...

随机推荐

  1. Transformers for Graph Representation

    Do Transformers Really Perform Badfor Graph Representation? microsoft/Graphormer: This is the offici ...

  2. asp.net core配合vue实现后端验证码逻辑

    概述 网上的前端验证码逻辑总感觉不安全,验证码建议还是使用后端配合验证. 如果产品确定可以上网的话,就可以使用腾讯,百度等第三方验证,对接方便.但是产品可能内网部署,就必须自己写了. 本文章就是基于这 ...

  3. 【floyd】8.29题解-path

    path 题目描述 这次的任务很简单,给出了一张有N个点M条边的加权有向无环图,接下来有Q个询问,每个询问包括2个节点X和Y,要求算出从X到Y的一条路径,使得密度最小(密度的定义为,路径上边的权值和除 ...

  4. C#串口通信——DtrEnable 和RtsEnable 两个属性

    转自 http://www.cnblogs.com/hengbo/archive/2011/12/19/2293272.html 在开发中有些串口设备需要串口供电(本人在开发门禁系统时,对起落杆进行控 ...

  5. SqlServer中offset..fetch 的使用问题

    好久没更新了,最近忙的很,也生病了,重感冒,555~~~ 早上抽的一丝空闲,来讲讲SqlServer中的分页问题.其实用过了多种数据库,分页这问题已经是老生常谈的问题了.不管是开发什么类型的网站,只要 ...

  6. 使用axios模拟表单提交

    1.需求背景 最近在实验室写一个Spring前后端分离的项目,项目中使用Spring Security组件实现系统的认证和授权,当Security的认证模式设置为FormLogin时(如下代码),前端 ...

  7. 框架篇:分布式全局唯一ID

    前言 每一次HTTP请求,数据库的事务的执行,我们追踪代码执行的过程中,需要一个唯一值和这些业务操作相关联,对于单机的系统,可以用数据库的自增ID或者时间戳加一个在本机递增值,即可实现唯一值.但在分布 ...

  8. 生成工作区设置文件settings.json

    先Ctrl+Shift+P,然后输入setting搜索 找到工作区设置(工作区,仅在当前打开的界面下生效,文档位置与根目录/.vscode/setting.json(可自己创建,也可不创建)) 选择之 ...

  9. hdu1232 并查集总结

    前言 在一些有N个元素的集合应用问题中,我们通常是在开始时让每个元素构成一个单元素的集合,然后按一定顺序将属于同一组的元素所在的集合合并,其间要反复查找一个元素在哪个集合中. 这一类问题其特点是看似并 ...

  10. excel VBA根据单元格内的逗号把内容拆分行

    Sub test1()    Dim h    Dim j As Integer    j = 0  '用于辅助循环的进行,可以在拆分行获取下一个需要拆分单元格的行号    'Application. ...