`

移动互联网_微信协议分析

 
阅读更多

协议。手机终端跟后台服务器之间的交互协议,这个协议的设计是整个系统的骨架,在这一点做好设计可以使得系统的复杂度大大降低。容灾。当系统出现了若干服务器或若干支架(宕机的时候),仍然需要让系统尽可能的提供正常的服务。轻重。如何在系统架构中分布功能,在哪一个点实现哪一个功能,代表系统中间的功能配置。监控。为系统提供一个智能仪表盘。

在协议设计上,移动互联网和常规互联网有很大的区别。首先有CMWAP和CMNET的不同,在中国现在有相当多的手机用户使用WMWAP连接,还有就是在线和离线的概念,当QQ下线的时候叫离线,当你登录的时候叫在线。但是在移动互联网这两个概念比较模糊。从微信的设计中,不管在线还是离线系统表现都应该是一致的。还有一个是连接不稳定的问题,由于手机信号强弱的变化,当时信号很好,5秒钟走到信号不好的地区,连接就必须断掉。这个中间带来不稳定的因素为协议设计带来较大困难。此外就是资费敏感的问题,因为移动互联网是按照流量计费的,这个计费会使得在协议设计中如何最小化传输的问题。最后就是高延迟的问题。

对此,业界标准的解决方案:Messaging And Presence Protocol:1)XMPP;2)SIP/SIMPLE。它的优点是简单,大量开源实现。而缺点同样明显:1)流量大:状态初始化;2)消息不可靠。

微信在系统中做了特殊设计,叫SYNC协议,是参考Activesyec来实现的。特点首先是基于状态同步的协议,假定说收发消息本身是状态同步的过程,假定终端和服务器状态已经被迟了,在服务器端收到最新的消息,当客户端、终端向服务器对接的时候,收取消息的过程实际上可以简单的归纳为状态同步的过程,收消息以及收取你好友状态更新都是相同的。在这样的模式之下,我们会也许会把交互的模式统一化,只需要推送一个消息到达的通知就可以了,终端收到这个通知就来做消息的同步。在这样的简化模式之下,安卓和塞班都可以得到统一。这样的系统本身的实现是更为复杂的,但是获得很多额外的好处。

让剩下系统实现的部分更加简单,简化了交互模式,状态同步可以通过状态同步的差值获得最小的数据变更,通过增量的传输得到最小的数据传输量。通过这样的协议设计,微信可以确保消息是稳定到达的,而且是按序到达。引用一句俗话:比它炫的没它简单,比它简单的没它快,没谁比他更快,哪怕在GPRS下,微信也能把进度条轻易推到底。

分享到:
评论

相关推荐

    2021030302_微信商城小程序.rar

    微信商城小程序是近年来移动互联网发展中的一个重要趋势,它利用微信庞大的用户基础,为企业和个人商家提供了一个便捷、高效的在线销售平台。这款2021030302_微信商城小程序,可能是某个开发者或团队在2021年3月3日...

    2224_微信小程序+VUE校园生活小助手答辩PPT.pptx

    综上所述,这个校园生活助手项目融合了现代移动互联网技术,利用微信小程序的用户触达能力,结合Vue.js进行前端展示,通过Java处理后台逻辑,利用MySQL存储数据,JavaScript提供交互体验,而Eclipse作为开发工具,...

    滴滴公交-查公交获取线路详情_微信小程序_查公交获取线路详情_

    【标题】"滴滴公交-查公交获取线路详情_微信小程序_查公交获取...综上所述,滴滴公交的微信小程序不仅展示了移动互联网和大数据技术在公共交通领域的应用,也体现了现代服务设计中对用户体验、数据安全和智能化的重视。

    素材_微信小程序_thinkphp5_

    微信小程序和ThinkPHP5是两种在现代Web开发中广泛应用的技术,它们共同构建...随着移动互联网的发展,这种技术栈的运用将更加广泛,对于想要深入学习Web开发的程序员来说,掌握这两项技术无疑会大大提升其职业竞争力。

    1yygwx.zip_JAVA夺宝岛_java夺宝源码_org.jsoup.Jsoup_夺宝_微信

    通过学习这个源码,开发者可以了解到如何使用Java和微信API构建一个完整的移动互联网应用,包括用户认证、支付接口、数据库设计、后台服务逻辑等多个方面。同时,Jsoup的使用也能帮助开发者提升处理HTML数据的能力。

    一元夺宝主页设计_微信小程序模板js代码前台前端H5页面源码.rar

    在互联网技术日新月异的今天,微信小程序已经成为了移动应用开发的重要平台,尤其在电商领域,它以其轻量化、便捷化的特性受到广大用户的喜爱。本篇将深入探讨“一元夺宝”这种独特的电商模式在微信小程序中的实现,...

    语音日记本;php后端_微信小程序模板js代码前台前端H5页面源码+后台源码.rar

    在当今移动互联网时代,微信小程序因其无需安装、即用即走的特性,成为众多开发者和用户青睐的平台。本资源提供的是一个完整的“语音日记本”项目,涵盖了PHP后端、微信小程序的JS代码前台以及H5页面源码,还包括了...

    wechat-buycar-master_微信小程序模板js代码前台前端H5页面源码.rar

    微信小程序作为一种轻量级的应用开发平台,已经成为移动互联网时代开发者的重要工具。本压缩包“wechat-buycar-master”提供的是一套完整的微信小程序模板,包括js代码和前台前端H5页面源码,非常适合初学者学习和...

    103_微信小程序+VUE+SSM超市购物系统小程序开题报告.doc

    【微信小程序+Vue+SSM超市购物系统】的开题报告详细阐述了基于现代移动互联网技术的超市购物系统开发的背景、意义、研究内容、目标、特色和工作进度。以下是相关知识点的详细说明: 1. **微信小程序**:微信小程序...

    weixin.rar_weixin_注册微信

    综上所述,"weixin.rar_weixin_注册微信"项目涵盖了微信API的使用、JPA数据持久化、iOS平台的对接、前端页面开发、RESTful API设计以及安全性等多个方面,是一个典型的移动互联网应用开发案例。通过这样的项目实践,...

    微信协议,Ipad协议、MAC协议、Windows协议=.zip

    微信协议,Ipad协议、MAC协议、Windows协议(本开源项目是7.X版本 840是商用 JAVA版本的,学习用,商用独家840 Java协议测试 请看下面).zip 软件开发设计:应用软件开发、系统软件开发、移动应用开发、网站开发C++...

    微信登录授权

    微信登录授权是现代移动互联网应用中常见的用户身份验证方式,特别是在中国的互联网环境中,微信作为一款全民使用的社交软件,其登录授权功能为众多第三方应用提供了便捷的登录途径。本文将深入探讨微信登录授权的...

    2021032302_基于微信小程序的停车位共享平台.rar

    4. **移动互联网通信协议**:HTTP/HTTPS协议是小程序与服务器通信的基础,开发者需要理解其工作原理,以及如何设置安全的请求头以防止跨站请求伪造(CSRF)等问题。 5. **地图API集成**:为了提供准确的车位位置...

    模版:(普通商户) 微信支付宝业务合作协议+业务模式及应用场景说明.pdf

    《微信支付宝业务合作协议》是针对普通商户与第三方支付平台之间合作的重要法律文件,涉及到移动支付业务的多个方面。本文将详细解析其中的关键知识点。 首先,移动支付业务是本协议的核心,指的是通过移动支付平台...

    微信技术总监分享架构设计高清完整PDF版

    - **协议优化**:面对移动互联网环境的复杂性,如网络不稳定等问题,微信设计了一套独特的SYNC协议,该协议参考了ActiveSync,通过状态同步和客户端拉取的方式简化交互模式,减少数据传输量,保证消息的可靠传输和...

    移动互联网服务优化

    通过上述内容的分析,可以看出移动互联网服务优化涉及到的技术和流程非常广泛,涵盖了从底层网络协议到终端应用层面的多方面优化。这些优化工作对于提升用户体验至关重要,尤其是在移动设备和无线网络环境下,用户的...

    rar模拟微信访问wap页面刷投票

    2. **访问WAP页面**:WAP(Wireless Application Protocol)是无线应用协议,主要用于移动设备访问互联网。在微信环境中,WAP页面通常是指适应移动设备的小型化网页,它们可能有专门的URL前缀,如`m.`。模拟访问WAP...

    微信客户端怎样应对弱网络 叶润桂.pdf

    3. 应用层和物理层架构优化:微信客户端针对移动互联网的MS-BSN-MSN-GGSN-DNS-GGSN互联网手机无线网络核心网络架构进行优化,通过合理配置网络参数,减少信令分配和基站切换时的延迟和丢包。 4. 服务器端和客户端的...

    计算机科学与技术_基于微信小程序的家教信息管理系统的设计与实现.docx

    另一方面,随着移动互联网技术的发展,越来越多的人习惯于通过手机等移动设备获取各种服务。在这种背景下,开发一款基于微信小程序的家教信息管理系统显得尤为重要。这样的系统不仅能够充分利用微信庞大的用户基础,...

    计算机科学与技术_基于微信小程序的课堂互动系统的设计与实现.docx

    随着互联网行业的飞速发展及移动互联网的普及,在线教育已成为互联网行业中一个非常重要的领域。在这个背景下,课堂互动成为了连接传统教育与现代教育的新热点。课堂互动不仅能够活跃课堂氛围,还能促进师生之间的...

Global site tag (gtag.js) - Google Analytics