• iOS及时通讯开发的总结


    近期主要是在搞iOS的即时通讯的开发,第一个及时聊天版本已经上线了。前期曾考虑过聊天类的SDK,因为考虑到深度的定制并且与业务的需求高度相关,但最后选择了自己实现整套聊天的过程。

    前端使用的是SocketRocket、如之前的文章有所叙述。文章链接
    后端使用的是WorkerMan

    前端iOS涉及到问题主要有:

    1.断网弱网网络切换等情况的断线重连处理。
    2.消息与服务器的同步,不能出现消息遗漏、丢失的情况。
    3.消息的接收,分发,通知。
    4.消息多种样式Cell的展示。(UITableView的使用。)
    5.内容输入变换。
    6.多设备同时登录的消息同步,(A设备发送消息,B设备也要同步显示这条发送的消息)。
    7.已读未读的标识、消息发送失败的标识、消息发送失败的重发操作等。
    8.如何确保消息发送到服务器的消息发送成功?(服务器收到消息的回执操作)。
    9.消息如何保证唯一性,比如前后两条消息内容一样,如何区分?(消息增加唯一标识)
    如此等等。。。

    后期主要是对聊天这一块的内存释放进行优化,确保聊天主界面的内存释放,避免内存的大量消耗。
    这方面主要是借助苹果公司的Instruments工具和MLeaksFinder这个库。

    避免耗时的操作,比如创建大量的对象。优化用户体验,对聊天界面的数据展示,大量计算的优化,包括文字高度的计算,图片的绘制,layer的处理等。
    针对这方面的优化,通过主观常见的耗时操作,TIK、TOK代码的执行时间查看,以及App运行FPS的查看(YYFPSLabel),定位具体的耗时页面引起的界面卡顿。避免将耗时卡住主线程的操作放在主线程中。

  • 相关阅读:
    爬取动态html网页,requests+execjs
    pycharm2019.2一个奇怪的bugger,执行后输出内容被莫名处理
    博客园啥时候升级了,刚看到
    在浏览器的市场上,IE依然是放弃了,firefox还在继续~~
    jetbrain rider 逐渐完美了,微软要哭了么?
    div层的滑入滑出实例
    关于js的<、>、=、<=、>=的比较
    Jquery实现左右轮播效果
    Html5离线缓存详细讲解
    CANVAS画布与SVG的区别
  • 原文地址:https://www.cnblogs.com/vokie/p/9263208.html
Copyright © 2020-2023  润新知