- 7
- 0
- 约 12页
- 2016-12-02 发布于重庆
- 举报
微信協议简单调研笔记
聂永的博客
记录工作/学习的点点滴滴。
微信协议简单调研笔记
前言
微信可调研点很多,这里仅仅从协议角度进行调研,会涉及到微信协议交换、消息收发等。所谓“弱水三千,只取一瓢”吧。
杂七杂八的,有些长,可直接拉到最后看结论好了。
一。微信协议概览
微信传输协议,官方公布甚少,在微信技术总监所透漏PPT《微信之道—至简》文档中,有所体现。
纯个人理解:
因张小龙做邮箱Foxmail起家,继而又做了QQ Mail等,QQ Mail是国内第一个支持Exchange ActiveSync协议的免费邮箱,基于其从业背景,微信从一开始就采取基于ActiveSync的修改版状态同步协议Sync,也就再自然不过了。
一句话:增量式、按序、可靠的状态同步传输的微信协议。
大致交换简图如下:
如何获取新数据呢:
服务器端通知,客户端获取
客户端携带最新的SyncKey,发起数据请求
服务器端生成最新的SyncKey连同最新数据发送给客户端
基于版本号机制同步协议,可确保数据增量、有序传输
SyncKey,由服务器端序列号生成器生成,一旦有新消息产生,将会产生最新的SyncKey。类似于版本号
服务器端通知有状态更新,客户端主动获取自从上次更新之后有变动的状态数据,增量式,顺序式。
二。微信Web端简单调试
在线版本微信:
/
通过Firefox + Firebug组合调试,也能证实了微信大致通过交换SyncKey方式获取新数据的论述。
1. 发起GET长连接检测是否存在新的需要同步的数据
会携带上最新SyncKey
/cgi-bin/mmwebwx-bin/synccheck?callback=jQuery18306073923335455973_1393208247730r=1393209241862sid=s7c%2FsxpGRSihgZAAuin=937355deviceid=e542565508353877synckey=1_620943725%7C2_620943769%7C3_620943770%7C11_620942796%7C201_1393208420%7C202_1393209127%7C1000_1393203219_=1393209241865
返回内容:
window.synccheck={retcode:0,selector:2}
selector值大于0,表示有新的消息需要同步。
据目测,心跳周期为27秒左右。
2. 一旦有新数据,客户端POST请求主动获取同步的数据
/cgi-bin/mmwebwx-bin/webwxsync?sid=s7c%2FsxpGRSihgZAAr=1393208447375
携带消息体:
{BaseRequest:{Uin:937355,Sid:s7c/sxpGRSihgZAA},SyncKey:{Count:6,List:[{Key:1,Val:620943725},{Key:2,Val:620943767},{Key:3,Val:620943760},{Key:11,Val:620942796},{Key:201,Val:1393208365},{Key:1000,Val:1393203219}]},rr:1393208447374}
会携带上最新的SyncKey,会返回复杂结构体JSON内容。
但浏览端收取到消息之后,如何通知服务器端已确认收到了?Web版本微信,没有去做。
在以往使用过程中,曾发现WEB端有丢失消息的现象,但属于偶尔现象。但Android微信客户端(只要登陆连接上来之后)貌似就没有丢失过。
3. 发送消息流程
发起一个POST提交,用于提交用户需要发送的消息
/cgi-bin/mmwebwx-bin/webwxsendmsg?sid=lQ95vHR52DiaLVqor=1393988414386
发送内容:
{BaseRequest:{Uin:937355,Sid:lQ95vHR52DiaLVqo,Skey:A6A1ECC6A7DE59DEFF6A05F226AA334DECBA457887B25BC6,DeviceID:e937227863752975},Msg:{FromUserName:yongboy,ToUserName:hehe057854,Type:1,Content:hello,ClientMsgId:1393988414380,LocalID:1393988414380}}
相应内容:
{
BaseResponse: {
Ret: 0,
ErrMsg:
}
,
MsgID: 1020944348,
LocalID: 1393988414380
}
再次发起一个POST请求,用于申请最新SyncKey
/cgi-bin/mmwebwx-bin/
您可能关注的文档
最近下载
- 国之脊梁中国科学家的家国天下阅读分享PPT课件.pptx VIP
- 个人简历模板表格简历模板免费下载.docx VIP
- (2026春新版)部编版三年级道德与法治下册全册教案.doc
- 健康体适能评定理论与方法.pptx VIP
- JR DSX7 全中文说明书 和 Spektrum DX7 全中文说明书.docx VIP
- 2020年高级经济师(人力资源)考试真题及参考答案 .pdf VIP
- 社会体育指导专题9 (傅浩坚).ppt VIP
- 2026年山东司法警官职业学院单招综合素质考试模拟试题及答案解析.docx VIP
- 社会体育指导专题8(傅浩坚).pptx VIP
- 肝硬化门静脉高压症食管、胃底静脉曲张破裂出血诊治专家共识(2024版).pptx VIP
原创力文档

文档评论(0)