2.1.1 Примечания к выпуску

Channels 2.1.1 - это релиз исправления важной ошибки в новом коде асинхронной аутентификации.

Основные изменения

Нет.

Исправления и небольшие изменения

Ранее объект в scope["user"] был одним из SimpleLazyObjects Django, который затем вызывал нашу асинхронную функцию get_user через async_to_sync.

Это прекрасно работало при вызове из SyncConsumers, но поскольку асинхронные среды не выполняют доступ к атрибутам асинхронно, когда тело асинхронного потребителя пыталось вызвать это, библиотека asgiref отмечала ошибку, когда код пытался вызвать синхронную функцию в асинхронном контексте.

Чтобы исправить это, объект User теперь загружается не лабильно при запуске приложения. Это вводит блокирующий вызов во время синхронного конструктора приложения, поэтому спецификация ASGI была обновлена, чтобы рекомендовать, чтобы конструкторы для приложений ASGI вызывались в пуле потоков, и Daphne 2.1.1 реализует это и рекомендуется для использования с этим выпуском.

Обратные несовместимые изменения

Нет.

Вернуться на верх