前言
開發一個支援全國的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