【工作记录】网易云信最近联系人中加入本地服务端数据
网易云信最近联系人中加入本地服务端数据
1.实现效果如下(语音聊天中)
2.实现思路:
特定情况下:
1、获取聊天列表(最近联系人中id)
2、根据id,请求所有人的情况
3、刷新列表
3.具体实现:
1.获取用户id
items_id.clear();for (int i = 0; i < items_adapter.size(); i++) {//此处,避免最近联系人过多。我们只刷新前三十个人。if (i >= 30) {break;}items_id.add(items_adapter.get(i).getContactId());}
2.请求
犹豫数据渲染在网易云信module中,不能进行网络请求。所以将id通过回调传到app模块中,请求完成后。再传回来。
1、回调
if (callBackUnreadNum != null) {try {callBackUnreadNum.sendList(items_id);} catch (Exception e) {e.printStackTrace();}}
2、请求@Overridepublic void sendList(List<String> list) {//5秒内,不允许重复刷新if (ClickUtils.isInterval(5000)) {return;}String str_params = LXUtils.getStringParamsString(list);org.json.JSONObject params = new org.json.JSONObject();try {params.put("accids", str_params);} catch (JSONException e) {e.printStackTrace();}LxRequest.getInstance().request(getContext(), CHAT_ROOM_USER_STATUS, params, handler, 3, false, "");}
3、传回去
if (object_temp3.getInteger("status") == 0) {JSONArray list = object_temp3.getJSONArray("data");recentContactsFragment.refreshChatroom(list);}
3.刷新列表:
(1).将数据赋值给原先列表:(recentContact.setExtension(map);)
//请求的数据(用户的状态)for (int i = 0; i < list.size(); i++) {JSONObject jsonObject = list.getJSONObject(i);String accid = jsonObject.getString("accid");//聊天最近联系人for (int j = 0; j < items_adapter.size(); j++) {RecentContact recentContact = items_adapter.get(j);String contactId = recentContact.getContactId();if (contactId.equals(accid)) {Map<String, Object> map = new HashMap<>();map.put("room_id", jsonObject.getInteger("room_id"));recentContact.setExtension(map);}}
(2)RecentViewHolder中进行数据展示
if (extensionMap != null) {try {room_id =(int) extensionMap.get("room_id");} catch (Exception e) {e.printStackTrace();}if (room_id == 0) {tvVoiceChat.setVisibility(View.GONE);tvDatetime.setVisibility(View.VISIBLE);} else {tvVoiceChat.setVisibility(View.VISIBLE);tvDatetime.setVisibility(View.GONE);}} else {tvVoiceChat.setVisibility(View.GONE);tvDatetime.setVisibility(View.VISIBLE);}
(3)点击后。将数据回传到FragmentMessage,进行进入房间操作
tvVoiceChat.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (getCallback() != null) {getCallback().onRoomInfo(finalRoom_id + "");}}});
4.刷新时机:
1、左右切换tab
2、下拉刷新
3、聊天列表自动刷新(信息发生改变),列表数量发生改变(减少可不刷新)
4、当用户状态发生改变时候,可以通过socket进行刷新
5.思考点:
1、刷新时机
2、避免左右切换,频繁刷新(5秒内不允许重复刷新)
3、网络请求,传值请求,再回传。
4、进入房间,将事件回传
【工作记录】网易云信最近联系人中加入本地服务端数据相关推荐
- 网易云信消息抄送php,消息功能-服务端API文档-IM即时通讯-网易云信开发文档
消息功能 发送普通消息 请求说明 POST https://api.netease.im/nimserver/msg/sendMsg.action HTTP/1.1 Content-Type:appl ...
- 网易云信:通信与视频云服务发展迅猛,或成企业服务中“火箭轨道”
网易云信,作为孵化自网易集团核心技术架构的通信与视频云服务商,目前服务范围从IM 服务逐步覆盖到视频服务.直播点播以及实时音视频技术等服务.截止2019年3月,云信在三年半时间内以营收年均增长超过20 ...
- 【推荐】2020,2021网易数字+大会(云原生微服务+大数据数据库+网易AI实践集合+其他) - (共187份)
[推荐]2020,2021网易数字+大会(云原生&微服务+大数据&数据库+网易AI实践集合+其他) - (共187份) 下载地址:https://download.csdn.net/d ...
- 网易云信亮相LiveVideoStackCon 2019,解读移动端播放器优化实践
4月19日, LiveVideoStackCon音视频技术大会在上海隆重举办.本届会议以"多媒体技术赋能新世界"为主题,汇集资深的音视频技术工程师,聚焦音频.视频.图像.AI等技术 ...
- 网易云信-IM即时通讯 微信小程序端实现
小程序端的需求,使用网易云信的即时通讯作为咨询沟通的工具. 剥离点对点聊天功能且能独立运行的git项目: https://github.com/GstKishn/IM/ 如解决了你的燃眉之急(开发不易 ...
- Pomelo:网易开源基于 Node.js 的游戏服务端框架
Pomelo 是基于 Node.js 的高性能.分布式游戏服务器框架.它包括基础的开发框架和相关的扩展组件(库和工具包),可以帮助你省去游戏开发枯燥中的重复劳动和底层逻辑的开发.Pomelo 不但适用 ...
- 技术实践 | 网易云信在融合通信场景下的探索和实践之 RTMPGateway 服务架构
导读:随着各个行业的互联网化进程不断演进,融合通信在越来越多的场景中得到应用,例如金融场景的视频面签.医疗场景的远程会诊.企业协作场景的多人视频会议等. 文|本森 网易云信资深音视频服务端开发工程师 ...
- 网易云信项望烽:开源最初都是被动的
开源不只是开源代码,还包括长期的维护开源项目的过程.开源的核心和精髓是什么?能否引用延伸至其他领域?国内开源技术发展现状如何?面临哪些挑战?本文来自开源中国[开源访谈]和网易云信移动端技术专家项望烽的 ...
- 网易云信-短信验证码发送、验证
提示:本文仅记录本人工作中遇到的难点与个人见解,仅供参考,如有问题请见谅. 目录 前言 一.网易云信短信服务是什么? 二.使用步骤 1.创建网易云信工具类CheckSumBuilder 2.短信验证码 ...
最新文章
- Windows设置软件开机自启动与关闭
- docker快速入门教程
- linux系统模块管理
- 计算机专业去广发银行,2019广发银行招聘计算机模拟试题
- docker容器内访问外部mysql_详解Docker容器内应如何访问本机(宿主机)
- superset出现unhashable type: ‘dict‘
- 数据结构-判断一棵树是否为二叉排序树
- ACM 常用算法合集
- java求职面试_Java面试求职
- uni 修改数据页面不重新渲染
- 备受青睐的在线报表工具有哪些?在线报表怎么做?
- python怎么读取txt文件-Python三种读取txt文件方式
- 高通RFC适配RFFE-添加MIPI设备【转】
- [硬件基础]开关电源和线性稳压器的优缺点?
- 青岛科技大学古典音乐考试需要的资料
- 身份证实名认证java后台代码
- 用C语言构造康托集,洛谷——P1014 Cantor表
- Prism4学习笔记(七):State-Based Navigation QuickStart
- 建立一个STM32F411RTOS
- 关于.Net与J2EE的比较,到底用微软平台还是Java平台的问题
热门文章
- 浅拷贝和深拷贝(谈谈java中的clone)
- 2020年中国色纺纱行业市场现状分析,国内参与者呈现寡头模式「图」
- Bilinear CNN Faster代码解读
- docker 部署 kong konga postgresql 以及konga配置
- 【工业控制】多变量动态矩阵预测控制(DMC)【含Matlab源码 1499期】
- MATLAB在动态经济学中的应用,MATLAB在动态经济学中的应用
- 我的Spring入门
- 使用CLIP构建视频搜索引擎
- pytorch 欧式距离 euclidean distance 实现
- 算法笔记之回溯法(一)——溯洄从之,道阻且长;溯游从之,宛在水中央。