情報要求メッセージの到着率を確保するため、WeChatサーバーは応答メッセージ(ResponseMessage)を時間内に受信できない場合、同じ要求メッセージ(RequestMessage)を複数回送信します。MsgIdなどを含むすべてのテキストコンテンツは、の一貫した。
このメカニズムは、ネットワーク状態が悪い場合などのメッセージ返信の成功率を保証しますが、サーバーの負荷やリクエストの処理自体が完了するまでに数秒かかる場合、複数のメッセージが繰り返されることでサーバーに負担がかかる場合もあります。ビジネスとデータへの影響。
この状況に対応して、SDK は MessageHandler を使用するときに次の文を追加するだけで済みます:
messageHandler.OmitRepeatedMessage = true;//启用消息去重功能
/// <summary> /// 最简化的处理流程(不加密) /// </summary> [HttpPost] [ActionName("MiniPost")] public ActionResult MiniPost(string signature, string timestamp, string nonce, string echostr) { if (!CheckSignature.Check(signature, timestamp, nonce, Token)) { return new WeixinResult("参数错误!");//v0.8+ } var messageHandler = new CustomMessageHandler(Request.InputStream, null, 10); messageHandler.OmitRepeatedMessage = true;//启用消息去重功能 messageHandler.Execute();//执行微信处理过程 return new FixWeixinBugWeixinResult(messageHandler); }
重複排除の原理は、現在のリクエストメッセージと前のリクエストをコンテキストを通じて判断することです。現在のユーザーのメッセージの MsgId が一致しているかどうかを確認し、一致している場合は下向きの実行を終了します。
ファイル: Senparc.Weixin.MessageHandlers.MessageHandler.cs
public virtual void OnExecuting() { if (OmitRepeatedMessage && CurrentMessageContext.RequestMessages.Count > 1) { var lastMessage = CurrentMessageContext.RequestMessages[CurrentMessageContext.RequestMessages.Count - 2]; if (lastMessage.MsgId != 0 && lastMessage.MsgId == RequestMessage.MsgId) { CancelExcute = true;//重复消息,取消执行 } } }
WeChat パブリック プラットフォーム開発の詳細については、メッセージの重複排除関連の記事をリクエストしてください。PHP 中国語 Web サイトにご注意ください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

WebStorm Mac版
便利なJavaScript開発ツール

Safe Exam Browser
Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
