美文网首页
IM 小项目总结

IM 小项目总结

作者: 一个冬季 | 来源:发表于2021-05-04 14:27 被阅读0次
参考文章

[023]你真的懂AIDL的oneway嘛?
系统“内存重启”后,Activity和Fragment的生命周期浅谈
FragmentActivity重启时Fragment状态异常的问题解决办法

概述

此偏是我做了一个小型的IM的一个总结,采用到的思想,遇到的问题分享给大家

采用过的通信方案

1、多进程方式,通过Messenger多进程通信,这种模式是属于队列模式。
我目前感受到的缺点

  • 一次只能处理一次请求,对于高频率的聊天不适合
  • 无法通过直接调用方法名称的方式来处理,你只能通过判断message.what的方式

2、多进程方式,Aidl多进程通信,可以通过调用方法名称的方式,可以异步进行回调(采用 oneway)
我目前采用的是第二种方案

遇到的问题

1、A 进程与B进程通信,如果传输量大(可以传输的大小,1M-8KB,如果aidl是oneway 还得可以传输的大小还得/2),会直接 android.os.TransactionTooLargeException 。
我目前的处理是,如果传输的量 > 200k 就将数据存储到本地,然后发送一个刚刚存储数据的唯一ID,给另外一个进程,进行本地数据库查询获取数据。

2、 既然是聊天,那就会设计到与服务器的通信,有采用过socket,但是这玩意会存在黏包现象发生,后面就采用okhttp的webscoket,这玩意就没有出现过黏包现象,不知道是否跟html的一样,遵循了RFC规范所以就不会这产生这种现象。我采用的轮子RxWebSocket,但是它这个我在测试的时候发现一个问题,我跟服务器之间断开连接后,想再次连接就无法连接上,它是通过一个map的方式,将url作为key,websocket作为value的方式,也就是他可以处理多个websocket。由于我项目只有一个websocket,所以我讲map的方式进行移除了,这里是我修改后的地址 在这里你完全可以摒弃我主demo的东西,和 WebSocket --- components 包里面的东西

相关文章

  • IM 小项目总结

    参考文章 [023]你真的懂AIDL的oneway嘛?[https://www.jianshu.com/p/0b2...

  • 2018-10-21

    imToken项目方空投智能合约 im小助手2018.10.21 imToken项目方免费空投 需要安装imTok...

  • SideBar列表索引

    概述 现在很多的APP项目都会集成IM功能(IM的好处和优点我就不说了,毕竟本文的重点不是介绍IM),说到IM肯定...

  • IM消息送达保证机制实现

    http://www.52im.net/thread-294-1-1.html 13、总结 1)im系统是通过超时...

  • 小程序登录流程

    小程序的登录流程 参考了网上大牛的登录流程总结出来的代码 https://juejin.im/post/5ae95...

  • UI总结-UIViewController

    UI总结-UIViewController 在AppDelegate.m文件中: #im...

  • 小程序项目总结

    在开发项目的时候,由于不会使用小程序组件功能,因此导致很多重复代码,所以,后期应当强化公共组件的封装与学习,以避免...

  • 小程序项目总结

    目录(各种框架通用套路) 一、静态页面 二、生命周期 三、获取数据 四、渲染页面 五、绑定事件 六、路由 七、页面...

  • 喜报项目小总结

    问题总结 关于技术上的问题 ​ 整体框架上 vue整体框架的搭建问题,项目开始前没有提前明确好各个界面之间的连...

  • 即时通讯(IM)开源项目OpenIM本周版本发布- v1.0.5

    即时通讯(IM)开源项目OpenIM本周版本发布- v1.0.5 原创OpenIM-skOpenIM开源IM的No...

网友评论

      本文标题:IM 小项目总结

      本文链接:https://www.haomeiwen.com/subject/rnhwqltx.html