微信开发协议小结

 更新时间:2016年11月08日 15:50:58   作者:飞翔_企鹅  
通过本教程给大家分享微信开发协议小结的相关知识,非常不错,具有一定的参考借鉴价值,感兴趣的朋友一起看看吧

1.发布的消息对应一个ID(只要单个方向唯一即可,服务器端可能会根ID判断重复接收),消息重传机制确保有限次的重试,重试失败给予用户提示,发送成功会反馈确认,客户端只有收到确认信息才知道发送成功。发送消息可能不会产生新SyncKey。

2.基于版本号(SynKey)的状态消息同步机制,增量、有序传输需求水到渠成。长连接通知/短连接获取、确认等,交互方式简单,确保了消息可靠谱、准确无误到达。

3.客户端/服务器端都会存储消息ID处理记录,避免被重复消费客户端获取最新消息,但未确认,服务器端不会认为该消息被消费掉。下次客户端会重新获取,会查询当前消息是否被处理过。根据一些现象猜测。

4.总体上看,微信协议跨平台(TCP或HTPP都可呈现,处理方式可统一),通过“握手”同步,很可靠,无论哪一个平台都可以支持的很好

5.微信协议最小成本为16字节,大部分时间若干个消息包和在一起,批量传输。微信协议说不上最简洁,也不是最节省流量,但是非常成功的。

6.若服务器检测到一些不确定因素,可能会导致微启用安全套接层SSL协议进行常规的TCP长连接传输。短连接都没有发生变化

7.发送消息方式

发送消息走已经建立的TCP长连接通道,发送消息到服务器,然后接受确认信息等,产生一次交互。

小伙伴接收到信息阅读也都会收到服务器端通知,产生一次交互等。

可以确定,微信发送消息走TCP长连接方式,因为不对自身状态数据产生影响,应该不交换SyncKey。

在低速网络下,大概会看到消息发送中的提示,属于消息重发机制

网络不好有时客户端会出现发送失败的红色感叹号

已发送到服务器但未收到确认的消息,客户端显示红色感叹号,再次重发,服务器作为重复消息处理,反馈确认

上传图片,会根据图片大小,分割成若干部分(大概1.5K被划分为一部分),同一时间点,客户端会发起若干次POST请求,各自上传成功之后,服务器大概会合并成一个完整图片,返回一个缩略图,显示在APP聊天窗口内。APP作为常规的文字消息发送到服务器端

上传音频,则单独走TCP通道,一个两秒的录制音频,客户端录制完毕,分为两块传输,一块最大1.5K左右,服务端响应一条数据通知确认收到。共三次数据传输。

音频和纯文字信息一致,都是走TCP长连接,客户端发送,服务器端确认。

以上所述是小编给大家介绍的微信开发协议小结,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • 在java poi导入Excel通用工具类示例详解

    在java poi导入Excel通用工具类示例详解

    这篇文章主要给大家介绍了关于在java poi导入Excel通用工具类的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2017-09-09
  • 深入浅析Java中Static Class及静态内部类和非静态内部类的不同

    深入浅析Java中Static Class及静态内部类和非静态内部类的不同

    上次有朋友问我,java中的类可以是static吗?我给他肯定的回答是可以的,在java中我们可以有静态实例变量、静态方法、静态块。当然类也可以是静态的,下面小编整理了些关于java中的static class相关资料分享在脚本之家平台供大家参考
    2015-11-11
  • Java如何实现验证码验证功能

    Java如何实现验证码验证功能

    这篇文章主要教大家如何实现Java验证码验证功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02
  • java多线程的同步方法实例代码

    java多线程的同步方法实例代码

    这篇文章主要介绍了 java多线程的同步方法实例代码的相关资料,需要的朋友可以参考下
    2017-04-04
  • Java中 springcloud.openfeign应用案例解析

    Java中 springcloud.openfeign应用案例解析

    使用OpenFeign能让编写Web Service客户端更加简单,使用时只需定义服务接口,然后在上面添加注解,OpenFeign也支持可拔插式的编码和解码器,这篇文章主要介绍了Java中 springcloud.openfeign应用案例解析,需要的朋友可以参考下
    2024-06-06
  • 如果淘宝的七天自动确认收货让你设计你用Java怎么实现

    如果淘宝的七天自动确认收货让你设计你用Java怎么实现

    在面试的时候如果面试官问淘宝的七天自动确认收货让你设计,你会怎么具体实现呢?跟着小编看一下下边的实现过程,对大家的学习或工作具有一定的参考借鉴价值
    2021-09-09
  • java中的内部类内部接口用法说明

    java中的内部类内部接口用法说明

    这篇文章主要介绍了java中的内部类内部接口用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • Java经理与员工的差异实现方法

    Java经理与员工的差异实现方法

    这篇文章主要介绍了Java经理与员工的差异实现方法,需要的朋友可以参考下
    2014-03-03
  • 利用Java实现网站聚合工具

    利用Java实现网站聚合工具

    互联网上有数以万亿计的网站,每个网站大都具有一定的功能。搜索引擎虽然对互联网上的部分网站建立了索引,但是其作为一个大而全的搜索系统,无法很好的定位到一些特殊的需求。因此本文将介绍一个用java实现的网站数据聚合工具,需要的可以参考一下
    2022-01-01
  • SpringBoot项目上高并发问题的解决方案

    SpringBoot项目上高并发问题的解决方案

    本章演示在springboot项目中的高并发demo,演示导致的问题,以及单机部署下的解决方案和集群部署下的解决方式以及分布式下的解决方案,文中通过图文结合的方式讲解的非常详细,需要的朋友可以参考下
    2024-06-06

最新评论