歡迎你們前往騰訊雲+社區,獲取更多騰訊海量技術實踐乾貨哦~javascript
關注公衆號「騰訊雲視頻」,一鍵獲取 技術乾貨 | 優惠活動 | 視頻方案android
「晚上去哪吃飯啊?」ios
桌面上來自一條晚上約飯的對話框——QQ。小程序
忽然靈光一現,新出了優化的IM SDK,能夠嘗試着搭建一個相似QQ的即時通信軟件性能優化
01微信
註冊帳號網絡
騰訊雲官網session
註冊騰訊雲帳號,也可使用QQ或者微信直接登錄架構
02
建立應用
選擇【產品】→【雲通訊】→【當即使用】→【建立應用接入】
03
SDK接入
一、集成SDK
【下載雲通訊SDK】包括IMSDK(雲通訊SDK)、TUIKit(基礎界面庫)
二、生成UserSig
在【基礎配置】下載公私鑰,使用【開發輔助工具】生成測試用戶的UserSig
三、初始化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);
四、建立登錄界面
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) { //點擊註冊時業務本身的註冊邏輯 } }); }
界面實圖
五、建立會話列表
佈局文件
<!--在會話列表佈局文件中引用會話列表組件,也可參考登陸面板在代碼中設置--> <?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();
界面實圖
六、建立聊天界面
Android代碼
//從佈局文件中獲取聊天面板組件 chatPanel = mBaseView.findViewById(R.id.chat_panel); /* * 會話組件的默認設置已經實現了會話數據的拉取與處理(與IMSDK關聯完成相關邏輯) * 開發者如無特殊要求直接初始化默認設置便可 * 另聊天面板組件提供的可擴展的事件和UI處理,具體可參考API文檔 */ chatPanel.initDefault(); //生成聊天基本信息,如聊天對象的暱稱,頭像,最後一頁聊天信息等 BaseChatInfo info = getChatInfo(); //設置基本信息,以便用戶進入該頁面時能即時展現相關信息 chatPanel.setBaseChatInfo(info);
界面實圖
七、羣管理
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%)的消息到達率
–
數據監控
用戶級數據監控,實時跟蹤和統計用戶行爲
–
海外布點
增長富媒體消息海外布點,爲圖片視頻語音文件的上傳下載提速
–
版本兼容
與老版本兼容,實現無縫切換
–
UIKit插件
一套多功能自定義界面庫,實現會話列表、聊天、聯繫人、羣管理、彈幕等界面,實現客戶一天接入
問答
請問小程序即時通信如何接入發送消息?
相關閱讀
IM即時通信實現原理
iOS 即時通信 + 仿微信聊天框架 + 源碼
開發一款即時通信App,從這幾步開始
【每日課程推薦】機器學習實戰!快速入門在線廣告業務及CTR相應知識
此文已由做者受權騰訊雲+社區發佈,更多原文請點擊
搜索關注公衆號「雲加社區」,第一時間獲取技術乾貨,關注後回覆1024 送你一份技術課程大禮包!
海量技術實踐經驗,盡在雲加社區!