歡迎大家前往騰訊雲+社區,獲取更多騰訊海量技術實踐干貨哦~
關注公眾號“騰訊雲視頻”,一鍵獲取 技術干貨 | 優惠活動 | 視頻方案
“晚上去哪吃飯啊?”
桌面上來自一條晚上約飯的對話框——QQ。
突然靈光一現,新出了優化的IM SDK,可以嘗試着搭建一個類似QQ的即時通訊軟件
01
注冊賬號
騰訊雲官網
注冊騰訊雲賬號,也可以使用QQ或者微信直接登陸
02
創建應用
選擇【產品】→【雲通信】→【立即使用】→【創建應用接入】
03
SDK接入
1、集成SDK
【下載雲通信SDK】包括IMSDK(雲通信SDK)、TUIKit(基礎界面庫)
2、生成UserSig
在【基礎配置】下載公私鑰,使用【開發輔助工具】生成測試用戶的UserSig
3、初始化SDK
Android代碼
//應用啟動時(一般為Application的onCreate)配置UIKit的基本配置,具體參數說明參考API
BaseUIKitConfigs uiKitConfigs = new BaseUIKitConfigs();
uiKitConfigs.appCacheDir(Constants.APP_DIR_CACHE).audioRecordMaxTime(120)
.disableAudioPlayedStatusIcon(true).disableAutoPlayNextAudio(true)
.ChatProcessor(new PojoChatProcessor());
ILiveUIKit.init(this, uiKitConfigs);
4、創建登陸界面
Android代碼
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//實例化登錄面板
mLoginPanel = new LoginView(this);
//將登錄組件設置為登錄Activity的基本布局,也可在布局文件xml中引用LoginView
setContentView((View) mLoginPanel);
//添加登錄組件的動作事件,登錄點擊與注冊點擊
mLoginPanel.setLoginEvent(new ILoginEvent() {
@Override
public void onLoginClick(View view, String userName, String password) {
//點擊登錄時業務自己的登錄邏輯
}
@Override
public void onRegisterClick(View view, String userName, String password) {
//點擊注冊時業務自己的注冊邏輯
}
});
}
界面實圖
5、創建會話列表
布局文件
<!--在會話列表布局文件中引用會話列表組件,也可參考登錄面板在代碼中設置-->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".main.MainActivity">
<com.tencent.qcloud.uikit.business.session.view.SessionPanel
android:id="@+id/session_panel"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
Android代碼
/**
* 獲取會話列表組件,初始化默認設置
* 會話組件的默認設置已經實現了會話數據的拉取與處理(與IMSDK關聯完成相關邏輯)
* 開發者如為特殊要求直接初始化默認設置即可
* 另會話組件提供的可擴展的事件和UI處理,具體可參考API文檔
*/
sessionPanel = baseView.findViewById(R.id.session_panel);
sessionPanel.initDefault();
界面實圖
6、創建聊天界面
Android代碼
//從布局文件中獲取聊天面板組件
chatPanel = mBaseView.findViewById(R.id.chat_panel);
/*
* 會話組件的默認設置已經實現了會話數據的拉取與處理(與IMSDK關聯完成相關邏輯)
* 開發者如無特殊要求直接初始化默認設置即可
* 另聊天面板組件提供的可擴展的事件和UI處理,具體可參考API文檔
*/
chatPanel.initDefault();
//生成聊天基本信息,如聊天對象的昵稱,頭像,最后一頁聊天信息等
BaseChatInfo info = getChatInfo();
//設置基本信息,以便用戶進入該頁面時能即時展示相關信息
chatPanel.setBaseChatInfo(info);
界面實圖
7、群管理
Android代碼
//從布局文件中獲群管理面板組件
GroupManagerPanel groupManagerPanel = mBaseView.findViewById(R.id.group_manager_panel);
/*
* 群管理組件的默認設置已經實現了群管理相關的邏輯也操作(與IMSDK關聯完成相關邏輯)
* 開發者如無特殊要求直接初始化默認設置即可
* 另聊群管理組件提供的可擴展的事件和UI處理,具體可參考API文檔
*/
groupManagerPanel.initDefault();
界面實圖
通過以上幾個步驟,一個擁有單聊、群聊的即時通訊App就這樣完成了
再次崇拜自己的動手能力,一天就能搭建完成一個APP,啦啦啦啦啦啦~
最后,了解一下經過優化后的新版本IM SDK
IM SDK
–
體積優化
1.android so體積<1M
2.ios體積增量<2M
–
性能優化
1.線程裁剪(單線程架構,減少線程切換和線程同步開支)
2.cpu占用優化(線程裁剪、代碼邏輯優化)
–
消息到達率
深度優化業務邏輯層、會話策略層和網絡層,實現四個九(99.99%)的消息到達率
–
數據監控
用戶級數據監控,實時跟蹤和統計用戶行為
- dau/mau
- 功能統計
- 用戶分布
–
海外布點
增加富媒體消息海外布點,為圖片視頻語音文件的上傳下載提速
–
版本兼容
與老版本兼容,實現無縫切換
–
UIKit插件
一套多功能自定義界面庫,實現會話列表、聊天、聯系人、群管理、彈幕等界面,實現客戶一天接入
問答
請問小程序即時通訊如何接入發送消息?
相關閱讀
IM即時通訊實現原理
iOS 即時通訊 + 仿微信聊天框架 + 源碼
開發一款即時通訊App,從這幾步開始
【每日課程推薦】機器學習實戰!快速入門在線廣告業務及CTR相應知識
此文已由作者授權騰訊雲+社區發布,更多原文請點擊
搜索關注公眾號「雲加社區」,第一時間獲取技術干貨,關注后回復1024 送你一份技術課程大禮包!
海量技術實踐經驗,盡在雲加社區!