Существует несколько возможных причин, по которым сообщения по WebSocket из Celery могут не получаться:
1. Неправильная конфигурация Celery: убедитесь, что Celery правильно настроен для работы с вашим проектом и что он настроен для использования веб-сокетов.
2. Проблемы с контекстом выполнения: при вызове функции через Celery как задачу, возможно, что контекст выполнения функции отличается от того, когда функция вызывается напрямую. Это может повлиять на доступ к переменным и ресурсам.
3. Ошибки в коде WebsocketConsumer и asgi.py: убедитесь, что код ваших WebSocketConsumer и asgi.py правильно настроен и не содержит ошибок, которые могут препятствовать правильной отправке сообщений по WebSocket.
4. Тестирование подключения: проверьте, что WebSocket соединение работает правильно и может принимать и отправлять сообщения. Попробуйте отправить сообщение напрямую через WebSocket соединение, чтобы убедиться, что проблема действительно связана с Celery.
Если вы продолжаете сталкиваться с проблемой, попробуйте отладить код и посмотреть более подробную информацию о том, что именно идет не так. Возможно, в логах Celery или браузера найдется информация о причине неполучения сообщений по WebSocket из Celery.