当前位置: 首页 > news >正文

防水网站建设如何更改 网站 关键词

防水网站建设,如何更改 网站 关键词,ae免费模板下载网站,足球用品网络营销方式引言即便在通讯如此发达的今天#xff0c;IM 也依然是诸多场景下非常重要的基础能力。因此做为 一名 Android 开发#xff0c;不可避免的会遇到一些IM 相关的需求或问题。本文以一个Android开发的角度来讲述IM 开发相关的基础知识。想要阅读更多技术干货、行业洞察#xff0…引言即便在通讯如此发达的今天IM 也依然是诸多场景下非常重要的基础能力。因此做为 一名 Android 开发不可避免的会遇到一些IM 相关的需求或问题。本文以一个Android开发的角度来讲述IM 开发相关的基础知识。想要技术干货、行业洞察欢迎关注网易云信博客。了解网易云信来自网易核心架构的通信与视频云服务。IM开发需要面对的问题网络问题如何高效快速的传输数据协议问题消息如何封装及时性问题如何进行进程保活网络问题TCP 的三次握手建立连接是一个非常耗时的过程。在 IM 场景下数据的传输将会非常的频繁如果每次传输都建立一个 TCP 连接那么这个效率是不能接受的并且频繁的建立连接可能会发生socket错误所以我们需要 “复用”TCP连接也就是平时所说的TCP长连接。TCP 长连接短连接在建立后当数据传输完毕时会立即关闭下次需要传输数据时需要重新建立连接在日常的业务场景非常常见比如通过 http/https 请求获取Server 数据。而长连接在传输完数据后并不会关闭这样下次需要传输数据时就可以直接使用已经建立好的连接这中间省去了连接建立的时间。但是建立一个 TCP 长连接却并不是“建立后不关闭”那么简单因为 TCP 长连接会“被动”关闭。网络地址转换 (NAT)IPv4的容量是有限的随着接入Internet的计算机数量的不断猛增IP地址资源也就愈加显得捉襟见肘于是也就产生了 NAT技术。简单来说NAT就是在局域网内部网络中使用内部地址而当内部节点要与外部网络进行通讯时就在网关可以理解为出口打个比方就像院子的门一样处将内部地址替换成公用地址从而在外部公网Internet上正常使用NAT可以使多台计算机共享Internet连接这一功能很好地解决了公共 IP地址紧缺的问题。通过这种方法可以只申请一个合法IP地址就把整个局域网中的计算机接入Internet中。而我们就处于运营商移动/联通/电信。。。的局域网内。当我们接入运营商的网络后会分配到一个运营商的内部 IP地址于是我们就可以使用这个IP地址建立连接向外传输数据了。但是当这个IP闲置了一段时间NAT超时时间后运营商为了节约资源会把分配给我们IP回收掉。此时如果我们还继续使用之前那个未关闭的连接去传输数据那么毫无疑问会失败的。下面是一些运营商的 NAT超时时间。网络NAT超时时间中国移动3G/2G5 min中国联通2G5 min中国电信3G大于 28 min要想长连接一直有效那么闲置时间就不能太长所以在闲置时我们需要向外Server传输一些数据包这也就是常说的“心跳包”用于告诉运营商这个 IP 还在被使用告诉Server 客户端还在线。心跳策略心跳策略一般分为两种1. 固定心跳2. 动态心跳这里讲一下固定心跳动态心跳可以参考 微信心跳 。固定心跳其实就是间隔固定时间发送一个心跳包。 心跳间隔 X 的值需要参考运营商的 NAT 超时时间确定不能大于最小的 NAT超时时间也不能太小要不Server 的负担非常重。一般取一个比较接近最小的NAT超时时间比如4分钟。协议问题协议决定是消息以什么样的形式传输即发送时如果对消息进行封装接收时如何解析。比如可以将消息体以 XML 的形式进行处理这也就是 XMPP 协议参考下面一个消息示意隔壁老王你儿子长的比你帅多了。老李嘿嘿谢谢夸奖messagefrom隔壁老王/fromto老李/tocontext你儿子长的比你帅多了。/contexttypetext/type /messagemessagefrom老李/fromto隔壁老王/tocontext嘿嘿谢谢夸奖/contexttypetext/type /message复制代码从上面的消息示意我们可以发现一条消息的内容可以拆分成很多属性而协议就是把这些属性组合起来。以 XML 的形式传输消息最大的一个问题就是冗余数据太多了特别是当消息的属性比较多时。那么有没什么格式能尽可能有减小冗余数据其实无论消息如何封装最终传输的肯定是二进制流那么完全可以直接用二进制的形式对消息进行封装这也就是二进制协议。下面是一个简单二进制协议的实现示意。一条消息由from to context type这几个属性组成那么我们完全可以按顺序存储在二进制中由于内容长度不确定所以每个属性的开头我们可以使用固定字节数来记录这个属性的内容长度。当然这里只是展示了一个二进制协议的例子实际的消息会比这复杂多了但是核心思路就是这么简单最终无非是设计与实现形式上的差距。及时性问题IM的作为即时通讯如果无法保证消息及时触达那么意义就大打折扣。要保证消息及时触达最关键要做到以下两点1. App 进程要尽量存活也就是进程保活 2. 在 App进程挂掉后能够唤醒起来进程保活进程保活其实是属于 Android 平台的一个话题相信大家日常开发也遇到过细节就不在这长篇大论了简单的说下几个原则1. 优化内存减小内存的占用会大大的减小被 kill 的机率2. 多进程将 UI 进程与 IM 进程独立出来这样 IM 的进程负担就会小很多进程唤醒严格意义上来说进程唤醒是属于进程保活的一个分支这里单独列出来是因为进程唤醒关注的是进程挂掉之后的动作。对于进程唤醒这里也只列些原则详细的可以去查阅相关资料。1. 静态注册监听广播7.02. Alarm定时任务定时去检查进程是否存活。3. JobScheduler定时任务定时去检查进程是否存活( 5.0 )4. 接入厂商推送网易云信NeteaseYunXin是集网易18年IM以及音视频技术打造的PaaS服务产品来自网易核心技术架构的通信与视频云服务稳定易用且功能全面致力于提供全球领先的技术能力和场景化解决方案。开发者通过集成客户端SDK和云端OPEN API即可快速实现包含IM、音视频通话、直播、点播、互动白板、短信等功能。
http://www.yutouwan.com/news/219847/

相关文章:

  • 网站建设力度不够论文wordpress调节字体大小
  • 网站简繁体转换.rar盐城哪里帮助公司建网址
  • 公司网站手机版设计免费代刷网站推广
  • 松江网站开发四库一平台建造师业绩查询
  • 五路居网站建设网站改版的目的
  • 在线搜索引擎seo行业网
  • 杨凌规划建设局网站seo广州工作好吗
  • 网站建设的因素美食网站html代码
  • 做英文网站价格常用的app开发制作
  • 网站与数据库的联系网站管理设置
  • 网站代理访问是什么意思wordpress标签分类名称
  • 秦都区建设局网站如何制作网站app
  • 北京建设银行分行招聘网站网站备案最多需要多久
  • 外省公司做网站备案本地生活网站 源码
  • 公司网站建设价格评价校园网站建设范例
  • 国内精美网站界面网址网站打开速度慢 如何优化
  • 手机网站建设需求免费在线图片制作
  • 网站怎么做投票在哪些网站可以做企业名称预审
  • 网站要怎么样做排名才上得去wordpress主题优化
  • 免费营销网站制作企业网站建设技巧
  • 网站建设小说毕业设计提升网站转化率
  • 茌平网站建设宣传册排版设计与制作
  • 网站与网页的区别.app拉新推广平台渠道
  • 宁波网站关键词排名推广网络推广方案包括哪些内容
  • 沈阳网站推广优化公司哪家好杭州工程网站建设
  • wdcp网站备份问题pacdora 设计网
  • 网站建设专用图形库网站后台用什么程序做
  • 要建立网站潮州市建设局网站
  • 网站流量查询英文网站seo方案
  • 汕头房产网站建设响应式营销型网站建设