ArtiomK, то, что ты в работе будешь использовать что-то кроме питона, не делает тебя фуллстэком. Фуллстэк — это вообще странное определение и непонятно, где там проходит черта.
Допустим, ты явно будешь работать с питоном, базами данных, кэшами (что, в общем-то, тоже базы данных) и, возможно, настраивать сервера. Ты будешь фуллстэком? Нет.
Прибавь сюда один только фронтенд на уровне поделий из jQuery — обработки формочек и посыланий AJAX'ов и, вуаля, ты уже фуллстэк.
прости, но ты имхо не дочитал документацию и исходники
WebsocketConsumer синхронный только для тебя. Под капотом есть функция sync_to_async, которая делает всю магию. А вот класс, который её имплементирует:
Предвижу твой вопрос "а зачем тогда WebsocketConsumer, если есть AsyncWebsocketConsumer?", сразу отвечаю:
Посмотри, как реализован класс SyncToAsync и поймёшь, что AsyncWebsocketConsumer будет более производительным вариантом, т.к. SyncToAsync запускает run_in_executor
Korifa, хм. Это интересно поведение, которое у меня никогда не происходило. Окей, как бы то ни было, твой изначальный вопрос не об этом, остальные два моих пункта на него отвечают