Production checklist ==================== Use this checklist before deploying ``django-sio``. Routing ------- * Route ``/socket.io`` for both HTTP and WebSocket scopes. * Put the Socket.IO HTTP route before the normal Django fallback route. * Ensure your reverse proxy forwards WebSocket upgrade headers. Workers and sessions -------------------- * Remember that Engine.IO sessions are stored in-process. * Use a single ASGI worker process, or enable sticky sessions/session affinity. * Do not rely on the Channels channel layer for Engine.IO session storage. Channel layer ------------- * Use a production channel layer such as Redis for room broadcasting. * Keep in mind that Redis broadcasting does not replace sticky sessions. Timeouts -------- * Review ``SIO_ENGINEIO_PING_INTERVAL_MS``. * Review ``SIO_ENGINEIO_PING_TIMEOUT_MS``. * Configure proxy/server idle timeouts so they do not close healthy Socket.IO connections too early. Payloads -------- * Review ``SIO_ENGINEIO_MAX_PAYLOAD_BYTES`` if you send large messages over HTTP long-polling. * Prefer small event payloads when possible. Logging ------- * Use ``DEBUG`` logging in staging when validating transport behaviour. * Use ``INFO`` logging in production for high-level lifecycle events. * Send ``sio`` logs to your normal Django logging handler or aggregator. Tests ----- * Test WebSocket transport. * Test polling transport. * Test connection, disconnection, acks, room joins, room leaves, and room broadcasts.