2.0.0 Примечания к выпуску¶
Channels 2.0 - это значительная переработка Channels, вносящая большое количество изменений в фундаментальный дизайн и архитектуру Channels. В частности:
Данные больше не передаются через канальный уровень между сервером протоколов и приложением; вместо этого приложения выполняются внутри своих серверов протоколов (как в WSGI).
Для достижения этой цели все ядро каналов теперь построено на основе фреймворка Python
asyncio
и выполняется async-native до тех пор, пока не попадет либо в представление Django, либо в синхронный потребитель.Python 2.7 и 3.4 больше не поддерживаются.
Более подробную информацию об изменениях и советы по переносу приложений можно найти в нашей документации /one-to-two.
Обратные несовместимые изменения¶
К сожалению, Channels 2 не имеет обратной совместимости с приложениями Channels 1 из-за большого объема перепроектирования кода и перехода от синхронного к асинхронному времени выполнения.
Имеется migration guide, и многие основные концепции остались прежними, но основная структура классов и импорты изменились.
Мы приносим свои извинения за то, что нам пришлось внести такое серьезное изменение, но это был единственный способ исправить некоторые фундаментальные проблемы дизайна Channels 1. В обозримом будущем Channels 1 будет продолжать получать исправления, связанные с безопасностью и потерей данных, но никаких новых функций добавлено не будет.