会话优化处理方案

上传人:今*** 文档编号:108210163 上传时间:2019-10-22 格式:DOCX 页数:22 大小:77.49KB
返回 下载 相关 举报
会话优化处理方案_第1页
第1页 / 共22页
会话优化处理方案_第2页
第2页 / 共22页
会话优化处理方案_第3页
第3页 / 共22页
会话优化处理方案_第4页
第4页 / 共22页
会话优化处理方案_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《会话优化处理方案》由会员分享,可在线阅读,更多相关《会话优化处理方案(22页珍藏版)》请在金锄头文库上搜索。

1、通讯功能评估一、 实现思路序号功能模块功能描述现阶段实现思路服务器接口融云接口本地缓存策略1历史会话列表1. 包括内容:l 系统消息历史会话l 好友历史会话l 群组历史会话2. 包括元素:l 头像(系统消息、好友头像、群组头像)l 姓名(系统消息、好友姓名、群组名称)l 最后一条历史会话l 会话时间1. 通过融云获取会话列表getCoversationList发送3个参数到java接口重新处理当前会话列表数据:会话列表内容、服务器ip地址、当前是云版还是局版2. Java接口getConListReList根据融云的会话列表循环对会话内容进行重构1) 判断当前会话类型:是私人会话、系统会话还是

2、群组会话l 私人会话:根据融云返回的当前人target_id发送http请求查询人员姓名和头像地址getPersonTxByYw,重组到会话json中返回l 群组会话:根据融云返回的当前群组id发送http请求查询当前群组的组名和群组头像地址,重组到会话json中返回l 系统会话:如果当前会话类型为系统消息,则重构会话中发送人id=admin;姓名=系统消息;头像=app中默认系统消息头像2) 接循环,获取每条会话消息的内容,对文字类型信息进行重构l 处理包含表情的img标签,根据服务器端表情文字和表情图片的json文件将img转化成表情文字l 替换文字中的换行和回车特殊标签3. 返回app后

3、,重构当前会话json数据,对发送和接收时间,通过data.js解析格林日志时间为正确时间格式4. 通过artemplate.js渲染页面5. 根据未读取条数,设置app图标的右上角总未读数6. 通过hanmer.js循环绑定长按删除当前会话方法1. app获取历史聊天列表后,重构当前会话后返回jsonl 类型:javal 开发:周枫l getConListReList(String con_list, String ip_addr, int app_type)2. 根据身份和人员id获取当前人员头像l 类型:lual 开发:胡悦l getPersonTxByYw(int person_id,

4、 int identity_id, String yw, int random_num)3. 根据群组id和平台类型获取群组名称和头像l 类型:lual 开发:吴缤l queryGroupInfoById(String id, int app_type)1. 获取会话列表注:会话列表按照时间从前往后排列,如果有置顶会话,则置顶会话在前l 代码示例:rong.getConversationList(function (ret, err) api.toast( msg: JSON.stringify(ret.result) );)l 返回值 status: success, result: con

5、versationTitle: Ironman, / 会话标题 conversationType: PRIVATE, / 参见 会话类型 枚举 draft: , / 文字消息草稿的内容 targetId: group001, / 消息目标 Id latestMessage: text: Hello world!, extra: , / 最后一条消息的内容 sentStatus: SENT, / 参见 发送出的消息状态 *notificationStatus: NOTIFY, / 会话通知状态,2.0.0将不再提供此字段,可通过 getConversationNotificationStatus

6、 获取 objectName: RC:TxtMsg, / 消息类型,参见 http:/ recievedStatus: READ, / 参见 接收到的消息状态 senderUserId: 55, / 发送消息的用户 Id unreadMessageCount: 10, / 本会话的未读消息数 receivedTime: 1418968547905, / 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数 sentTime: 1418968488063, / 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数 i

7、sTop: false, / 置顶状态 latestMessageId: 608 / 本会话最后一条消息 Id 1. 根据数据库表t_hh_message查询2监听融云发送的新消息1. 根据融云接口获取融云发送的新消息2. 如果系统消息是群组变更,则重构通讯录3. 发送新消息到会话页面4. 重新渲染会话历史页面1. 融云初始化后,设置融云监听新消息接口setOnReceiveMessageListener,进行监听融云的新消息接收2. 如果消息类型为系统消息,则判断当前系统消息是否为群组变更类型消息,如果是,则自动调用reloadTxlData刷新群组方法对群组列表刷新3. 根据群组id删除当

8、前群组的历史会话记录clearMessageById4. 设置监听getNewMessage,将当前消息发送到会话页面,会话页面设置监听获取该消息进行聊天时使用5. 如果当前页面为会话历史页面则重新渲染getCoversationList当前页面;如果当前页面为会话页面,则不渲染会话历史页面,只有从会话页面返回时重新渲染会话历史页面1. 设置接收消息的监听器注:所有接收到的消息、通知、状态都经由此处设置的监听器处理。包括私聊消息、讨论组消息、群组消息、聊天室消息以及各种其他消息、通知、状态等 l 代码示例:rong.setOnReceiveMessageListener(function (r

9、et, err) api.toast( msg: JSON.stringify(ret.result.message) ); api.toast( msg: ret.result.message.left );)l 返回值: result: message: content: text: Hello world!, extra: , / 消息内容 conversationType: PRIVATE, / 参见 会话类型 枚举 messageDirection: SEND, / 消息方向:SEND 或者 RECEIVE targetId: 55, / 这里对应消息发送者的 userId obje

10、ctName: RC:TxtMsg, / 消息类型,参见 http:/ sentStatus: SENDING, / 发送状态:SENDING, SENT 或 FAILED senderUserId: 55, / 发送者 userId messageId: 608, / 本地消息 Id sentTime: 1418971531533, / 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数 receivedTime: 0 / 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数 , left: 0 / 剩余未拉取

11、的消息数目 2. 从会话列表中移除某一会话,但是不删除会话内的消息注:如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息l 示例代码:rong.removeConversation( conversationType: PRIVATE, targetId: 9527 , function (ret, err) api.toast( msg: ret.status );)l 返回值: status: success / 状态码:success / error3. 清空某一会话的所有聊天消息记录l 示例代码rong.clearMessages( conversationTy

12、pe: PRIVATE, targetId: 9527 , function (ret, err) api.toast( msg: ret.status );)l 返回值 status: success / 状态码:success / error3打开会话页面私人会话1. 加载聊天模块2. 打开会话内容页面1) 获取当前会话的历史会话2) 跳转到页面底部3) 设置监听获取融云新消息4) 绑定下拉刷新历史会话5) 设置监听发送文本消息6) 设置监听发送图片消息7) 设置监听发送语音消息1. 打开某一会话页面openHhList2. 清除未读信息cleanMsg3. 刷新会话历史列表页面getCoversationList4. 如果会话页面是私人会话则直接打开页面 5. 通过initGetHistory接口设置监听getHistory发送给融云getHistoryMessages接口获取历史信息,再通过监听setHistory返回历史数据到会话内容页面,倒序循环渲染页面,第一次加载时获取10条数据1. 清除某一会话的消息未读状态l 示例代码rong.clearMessagesUnreadStatus( conversationType: PRIVATE, targetId: 9527 , function (ret, err) api.toast( msg: r

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号