zoukankan      html  css  js  c++  java
  • 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),定位具体的耗时页面引起的界面卡顿。避免将耗时卡住主线程的操作放在主线程中。

  • 相关阅读:
    c++11 static_assert
    UVA
    析构函数与运行错误
    UVA
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区) C. Coconut
    2017 ACM-ICPC 亚洲区(乌鲁木齐赛区) A. Banana
    DOCTYPE的作用?
    数组去重的方法
    闭包的分析?
    SVN(集中式管理)分析
  • 原文地址:https://www.cnblogs.com/vokie/p/9263208.html
Copyright © 2011-2022 走看看