13_微信项目开发05_接受消息的排重方法的解决方案

本文介绍微信服务器如何处理用户请求及开发者如何实现消息的接收与回复。重点讲解了排重机制的设计,包括使用FromUserName和CreateTime字段进行消息唯一标识,利用rel字段缓存响应内容以提高效率,以及定时清理过期消息的机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本章讲解内容主要如下:

1.用户发起请求到微信服务器,微信服务器会向开发者这里发送请求,如果微信服务器在五秒内收不到响应会断掉链接,并且重新发起请求,总共重试三次。

2.开发者这里如果接收到请求,会从数据库中获取到回应信息并返回,如果五秒内没有返回,会再次接收到微信服务器发起的请求,这时需要进行排重操作。

3.我们会在一个排重类中保存FromUserName和CreateTime(这两个字段是用来做排重操作的),curTime(这个字段是用来做清空操作的,在每隔一段时间需要对信息做一次清空,要不然会产生大量的数据),rel(这个字段是用来存储返回信息的,用来假设网络出现问题,第一次没有响应成功,第二次直接从排重类中获取到rel并且返回,不用再次去数据库获取,加快速度)。

4.在每一次接受到请求,开发者会把请求信息和将从数据库中获取到的返回信息存储到排重类列表中,如果出现网络问题,没有返回给微信服务器,这时微信服务器会再次发送请求,开发者会在排重列表中查找是否有相同FromUserName和CreateTime的请求信息,如果有,将rel信息返回给微信服务器,如果没有,则进行重新获取。

5.排重类列表要由一个job进行清空操作,如果微信服务器的请求出现问题,会每隔五秒发送一次,总共发送三次,所以要当前时间减去排重列表中存储的时间至少要15秒以上才能进行清空。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值