درس ۲۹ از ۳۳

Cancellation

عنوان اصلی: Cancellation

هدف یادگیری: استفاده از notifications/cancelled با id request برای cancel کردن کار در حال پرواز.

Cancellation یک notification است که با progress جفت می‌شود. وقتی کاربر دکمه «Stop» را در host می‌زند، client یک notifications/cancelled با requestId و reason اختیاری می‌فرستد. Server بهتر است هر چه زودتر کار را متوقف کند، اما طبق spec، اگر قبلاً پاسخ را تولید کرده، می‌تواند آن را همچنان بفرستد.

مثال عملی — JSON خام

{ "jsonrpc": "2.0", "method": "notifications/cancelled",
  "params": { "requestId": 42, "reason": "User pressed Stop" } }

اشتباهات رایج

  • یکی گرفتن قطع اتصال شبکه با cancellation. spec صریحاً جدا کرده.
  • send کردن cancellation برای requestای که قبلاً complete شده. server باید ignore کند.