"use client"; import { useEffect } from "react"; import { realtime } from "@/lib/realtime"; // 实时总线生命周期:登录即连、登出即断;连接/重连/心跳全部封装在 lib/realtime。 // 挂在持久 root layout 上,全标签页只维护一条 WebSocket。 export default function RealtimeProvider({ userId }: { userId: number | null }) { useEffect(() => { if (userId) { realtime.connect(); return () => realtime.disconnect(); } realtime.disconnect(); }, [userId]); return null; }