• 开发一款即时通讯App,从这几步开始


    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

    本文由腾讯云视频发表于云+社区专栏

    img

    关注公众号“腾讯云视频”,一键获取 技术干货 | 优惠活动 | 视频方案

    “晚上去哪吃饭啊?”

    桌面上来自一条晚上约饭的对话框——QQ。

    突然灵光一现,新出了优化的IM SDK,可以尝试着搭建一个类似QQ的即时通讯软件

    01

    注册账号

    腾讯云官网

    注册腾讯云账号,也可以使用QQ或者微信直接登陆

    02

    创建应用

    选择【产品】→【云通信】→【立即使用】→【创建应用接入】

    img

    img

    img

    03

    SDK接入

    1、集成SDK

    【下载云通信SDK】包括IMSDK(云通信SDK)、TUIKit(基础界面库)

    2、生成UserSig

    在【基础配置】下载公私钥,使用【开发辅助工具】生成测试用户的UserSig

    img

    img

    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) {
                    //点击注册时业务自己的注册逻辑
                }
            });
        }
    

    界面实图

    img

    img

    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();
    

    界面实图

    img

    img

    6、创建聊天界面

    Android代码

    //从布局文件中获取聊天面板组件
    chatPanel = mBaseView.findViewById(R.id.chat_panel);
    /*
    * 会话组件的默认设置已经实现了会话数据的拉取与处理(与IMSDK关联完成相关逻辑)
    * 开发者如无特殊要求直接初始化默认设置即可
    * 另聊天面板组件提供的可扩展的事件和UI处理,具体可参考API文档
    */
    chatPanel.initDefault();
    //生成聊天基本信息,如聊天对象的昵称,头像,最后一页聊天信息等
    BaseChatInfo info = getChatInfo();
    //设置基本信息,以便用户进入该页面时能即时展示相关信息
    chatPanel.setBaseChatInfo(info);
    

    界面实图

    img

    img

    img

    img

    7、群管理

    Android代码

    //从布局文件中获群管理面板组件
    GroupManagerPanel groupManagerPanel = mBaseView.findViewById(R.id.group_manager_panel);
    /*
    * 群管理组件的默认设置已经实现了群管理相关的逻辑也操作(与IMSDK关联完成相关逻辑)
    * 开发者如无特殊要求直接初始化默认设置即可
    * 另聊群管理组件提供的可扩展的事件和UI处理,具体可参考API文档
    */
    groupManagerPanel.initDefault();
    

    界面实图

    img

    img

    通过以上几个步骤,一个拥有单聊、群聊的即时通讯App就这样完成了

    再次崇拜自己的动手能力,一天就能搭建完成一个APP,啦啦啦啦啦啦~

    img

    最后,了解一下经过优化后的新版本IM SDK

    IM SDK

    体积优化

    1.android so体积<1M

    2.ios体积增量<2M

    性能优化

    1.线程裁剪(单线程架构,减少线程切换和线程同步开支)

    2.cpu占用优化(线程裁剪、代码逻辑优化)

    消息到达率

    深度优化业务逻辑层、会话策略层和网络层,实现四个九(99.99%)的消息到达率

    数据监控

    用户级数据监控,实时跟踪和统计用户行为

    1. dau/mau
    2. 功能统计
    3. 用户分布

    海外布点

    增加富媒体消息海外布点,为图片视频语音文件的上传下载提速

    版本兼容

    与老版本兼容,实现无缝切换

    UIKit插件

    一套多功能自定义界面库,实现会话列表、聊天、联系人、群管理、弹幕等界面,实现客户一天接入

    问答
    请问小程序即时通讯如何接入发送消息?
    相关阅读
    IM即时通讯实现原理
    iOS 即时通讯 + 仿微信聊天框架 + 源码
    开发一款即时通讯App,从这几步开始
    【每日课程推荐】机器学习实战!快速入门在线广告业务及CTR相应知识

    此文已由作者授权腾讯云+社区发布,更多原文请点击

    搜索关注公众号「云加社区」,第一时间获取技术干货,关注后回复1024 送你一份技术课程大礼包!

    海量技术实践经验,尽在云加社区

  • 相关阅读:
    [剑指offer] 赋值运算符重载
    [hihoCoder] 股票价格
    [LintCode] Kth Smallest Number in Sorted Matrix
    [LeetCode] Subarray Sum Equals K | 前缀和+哈希表
    [LeetCode] Add and Search Word
    [LeetCode] Implement Trie
    Tableau基础练习(三)
    Tableau基础练习(二)
    Tableau基础练习(一)
    SpringMVC用户请求下载文件
  • 原文地址:https://www.cnblogs.com/qcloud1001/p/9870844.html
Copyright © 2020-2023  润新知