参考资料--微信网络交互流程研究.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
微信网络交互流程研究目录1.微信业务部署架构22.微信的登陆流程3(1)域名解析过程3(2)注册、登陆、认证过程4(3)业务使用过程43.微信主要业务场景4(1)文本聊天交互流程4(2)实时对讲的交互流程5(3)查找附近的人交互流程5(4)漂流瓶功能的交互流程6(5)摇一摇/附近的人功能的交互流程7(6)朋友圈功能的交互流程7(7)游戏下载功能的交互流程9(8)微信购物功能的交互流程94 微信可缓存重点域名101.微信业务部署架构 微信自从2011年1月21日发布版本1.0,仅支持即时通讯、分享照片和更换头像,经过将近4年的开发完善,已成为一个融合型业务,包括文本、视频、语音、游戏、支付、LBS、电子商务、生活服务等多项应用功能。微信后台由一系列的服务器群组成,这些服务器群各有各的功能,服务器群内的每一台服务器都可以完成同样的功能。微信服务器群组成图如下:服务器功能 功能 短连接服务器群 ( )用于临时获取用户信息等资源、注册登录的服务器,也可以用于收发心跳等信息。长连接服务器器群 ( )用于控制信令信息的收发,也可以用于心跳信息收发。 文字消息、图片收发、摇一摇、漂流瓶等过程,以及 VoIP业务的呼叫建立过程都在该长连接上承载,数据采用微信私有的SYNC协议封装。 语音/视频服务器群(/ )用于语音/视频数据中转、NAT穿透。 图片服务器群 ( / )保存好友信息以及头像、图片等信息。 1、使用微信时,首先请求调度域名,该域名会返回多个域名和IP地址的对应关系,后续的访问都不再进行DNS查询,而是直接使用列表中域名的IP地址,此功能类似于DNS、调度服务器等;2、其他未包含在其中的域名则正常通过DNS解析获取IP地址; 3、最后通过与这些域名的交互,来实现发送/接受消息、朋友圈、附件的人等功能;2.微信的登陆流程(1)域名解析过程打开微信,首先发起域名解析行为。微信软件的域名解析方式有两种:普通的DNS域名解析方式和特殊的域名解析方式。普通的DNS域名解析方式如下截图,向DNS服务器发起域名解析请求,DNS服务器返回对应的源站IP。特殊的域名解析方式为打开微信app时,发起http get请求:源站收到请求后通过http页面返回dns解析结果,内容如下截图:可以看出返回的Html代码中给了多个域名对应的IP地址,从而达到域名解析的目的。(2)注册、登陆、认证过程注册、登陆、认证过程通过ssl加密方式进行。目的IP落地点均为网内资源 21广东省深圳市深圳市腾讯计算机系统有限公司移动节点87天津市移动9上海市移动(3)业务使用过程3.微信主要业务场景(1)文本聊天交互流程通过长连接通道传输消息内容,流程说明如下: a.发送方把编辑好的信息发送到长连接服务器,消息内容已加密,服务器缓存信息,并发送通知消息给接收方,通知接收方有信息要接收。 b.接收方从长连接服务器接收信息。(2)实时对讲的交互流程 实时对讲功能新引入STUN穿洞/中转服务器,以完成语音数据的私网穿透和中转功能,流程如下: a.发起方首先和长连接服务器通信,通知服务器将要和对方发起实时对讲。 b.发起方同时和STUN服务器(/)发起穿洞过程,该过程采用UDP协议,穿洞时,客户端同时在同一个源端口向STUN服务器多个端口发起UDP请求,服务器分别响应,客户端选择其中一条UDP通道作为后续语音传输通道。 c.长连接服务器通知接收方有对讲请求,接收方加入对讲,同时和STUN中转服务器发起穿洞过程,该过程与发起方的STUN穿洞过程是一致的。长连接服务器在收到接收方的信息后,通知发起方对方已加入,然后双方进入实时对讲状态。d.双方进入对讲状态,双方可以按住对讲按钮实时对讲,对讲数据将通过STUN服务器协商的通道由中转服务器中转给对方,双方进入对讲状态。 (3)查找附近的人交互流程 用户可以通过手机终端的LBS功能,获取附近的其他微信用户的信息列表: a.通过位置服务器获取当前位置信息,该位置服务器一般为手机自带的位置服务器或其他第三方服务器,例如Google地图、Apple地图。 b.客户端通过TCP长连接告诉服务器要找附近的人。 服务器将附近的人按从近到远的顺序发送给客户端。 d.如果当前显示页面中的人有设置头像,且本地没有缓存,则向发起HTTP请求GET/mmhead/..来获取摇出来的好友的头像等基本信息,GET请求个数与摇出来的好友的个数有关。 e.选中一个人,打开详细信息界面,如果此人有相册,则从服务器中获取相片信息。(4)漂流瓶功能的交互流程 微信用户通过检获或扔出漂流瓶的方式认识新的好友,流程如下: 1.进入界面时,与服务器在TCP长连接上进行通信,查看自己扔出去的漂流瓶是否有回应。 2.捡瓶子时,与服务器在TCP长连接上进行通信,返回结果有两种,没有或者捡到一

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档