fix: Host中间件审查修复(本地开发文档/顺序守护测试/ws断连分支/夹具清理)
Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -52,10 +52,16 @@ def _host_from_scope(scope: Scope) -> str:
|
||||
|
||||
async def _close_ws(receive: Receive, send: Send, code: int, reason: str) -> None:
|
||||
"""以 close 代 accept 拒绝 WS(ASGI 规范序列: 先收到 websocket.connect,
|
||||
再回 websocket.close)。reason 中性,不带租户信息。"""
|
||||
再回 websocket.close)。reason 中性,不带租户信息。
|
||||
|
||||
客户端在握手期间放弃时收到的首个事件是 websocket.disconnect 而非
|
||||
connect——对端已撤,close 送达不了,直接 return。receive 本身抛异常
|
||||
(传输层断)则向上传播,由外层 ServerErrorMiddleware 记日志:拒绝路径
|
||||
无任何已建立状态可留,无需也不应再兜一层。"""
|
||||
event = await receive()
|
||||
if event["type"] == "websocket.connect":
|
||||
await send({"type": "websocket.close", "code": code, "reason": reason})
|
||||
if event["type"] == "websocket.disconnect":
|
||||
return
|
||||
await send({"type": "websocket.close", "code": code, "reason": reason})
|
||||
|
||||
|
||||
class TenantHostMiddleware:
|
||||
|
||||
Reference in New Issue
Block a user