Skip to main content

unsubscribe

Function unsubscribe 

Source
pub async fn unsubscribe(
    __arg0: State<RestState>,
    rec: Option<Extension<Arc<KeyRecord>>>,
    __arg2: Json<Value>,
) -> Result<Json<Value>, (StatusCode, Json<Value>)>
Expand description

POST /api/unsubscribe-all — 反订阅(或 unsub_all)

复用 qot_sub proto,需要用户传 is_sub_or_un_sub=falseis_unsub_all=true。这是给 REST 直接调用者的便捷端点。

v1.4.90 P0-B fix: 用 REST_SHARED_CONN 替代 state.next_conn_id() — 必须与 subscribe path 用同一 conn_id, 否则 SubscriptionManager 找不到任何 挂载, unsubscribe 静默 no-op, quota 永不释放.

v1.4.104 codex round 3 F1 (P1) fix: /api/unsubscribe 是 sibling route 也复用 QOT_SUB proto + REST_SHARED_CONN, 之前 F5 fix 只在 subscribe()body_requests_unsub_all() reject — 用户切到 /api/unsubscribe 仍可 process-wide unsub all REST callers’ subs. 真 runtime path bypass. 现在两条 REST 路径统一走相同 reject.