Socket.IO v5 over Engine.IO v4. Rust owns sessions, transports (long-polling, WebSocket, upgrade), heartbeats, packet framing, namespaces, acknowledgement ids and rooms; the handler decides connections and what to emit.