流水不争先,争的是滔滔不绝

移动端网络优化的建议

IM安全 macgrady 124℃

IM对时效性上有着极高的要求,相对于有线网络,移动端有着自己的特点:网速慢,延迟高,不够稳定等特点。那么在网络延迟的弱网环境下该如何使用呢?APP经过不断调整总结优化,已实现完美兼容市场上99%的新旧手机设备,支持即时通讯全类型消息收发。支持Android  Ios  PC  端数据同步,可同时登录同一账号。IM产品现打包出售,通讯畅通,界面简洁美观,界面仿WX方便用户使用,有需要请联系QQ:340554038.

移动端网络优化建议:

建议1:尽量使用IP而非域名进行网络连接

对于有线网络来说DNS查询可能是一件不费吹灰之力的事,但是对于移动网络来说差距很大,DNS查询的耗时甚至都能赶得上一次连接的耗时。缓存服务器IP地址和端口,并尽量使用IP进行连接是个优质的选择。

建议2:减少不必要的网络连接
大多数的移动网络并不允许一个给定IP地址超过两个的并发HTTP请求,既当你有两个针对同一个地址的连接时,再发起的第三个连接总是会超时。同一时间发起过多的网络请求不仅不会起到加速的效果,反而有副作用。

另一方面,由于网络连接很是费时,保持和共享某一条连接就是一个不错的选择:比如短时间内多次的HTTP请求。像ASIHttpRequest就提供setShouldAttemptPersistentConnection的方法:

By default, ASIHTTPRequest will attempt to keep connections to a server open so that they can be reused by other requests to the same server (this generally results in significant speed boost, especially if you have many small requests). Persistent connections will be used automatically when connecting to an HTTP 1.1 server, or when the server sends a keep-alive header. Persistent connections are not used if the server explicitly sends a ‘Connection: close’ header.

建议3:设置合理的超时时间
过短的超时容易导致连接超时的事情频发,甚至一直无法连接,而过长的超时则会带来等待时间过长,体验差的问题。就目前来看,对于普通的TCP连接10秒是个不错的超时值,而Http请求可以按照重要性和当前网络情况动态调整超时,尽量将超时控制在一个合理的数值内,以提高单位时间内网络的利用率。

建议4:平衡网络延迟和带宽的影响
对于移动网络这种高延迟低带宽的情况,需要综合考虑进行平衡配置:在一个固定网络下,当包大小小于1500字节时(一个TCP的Payload),网络延迟的影响基本是一个常数,此时网络延迟的影响主要体现在请求次数上,所以合并多个小请求到一个包内是一个合理且有效的做法。而在包大小超过1500字节后,随着包大小的增加,延迟的影响会越来越小,但相应的带宽的影响会越来越大。

建议5:使用缓存
在本地有有效数据的情况下无须发起网络请求。配置文件,资源文件,描述文件,几乎所有的文件都可以成为我们缓存的对象,而大部分涉及到网络相关的移动端第三方库都提供了极其方便的缓存方法,设计时考虑的就只有缓存容量和过期时间的问题。

版权声明:部分文章、图片等内容为用户发布或互联网整理而来,仅供学习参考。如有侵犯您的版权,请联系我们,将立刻删除。
点击这里给我发消息