чат-сокет (веб-сокет) неожиданно закрывается (джанго-каналы)?

изображение консоли

я прошел, как указано в документах (каналы), он работал нормально, пока я не вставил код channel_layers в settings.py

я установил все спецификации, указанные в channel_layers

ASGI_APPLICATION = 'mysite.routing.application'
CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'channels_redis.core.RedisChannelLayer',
        'CONFIG': {
            "hosts": [('127.0.0.1', 6379)],
        },
    },
}

почему мой chat_server неожиданно закрывается


person penmetsa abhi    schedule 28.06.2019    source источник
comment
Работает ли Redis на этом порту локально?   -  person Ken4scholars    schedule 29.06.2019
comment
спасибо, теперь все работало нормально. я испортил много своего кода и исправил его.   -  person penmetsa abhi    schedule 30.06.2019
comment
Вы можете опубликовать ответ о том, как вы его решили. Потенциально это может помочь другому человеку   -  person Ken4scholars    schedule 30.06.2019


Ответы (3)


Прежде всего проверьте, работает ли Redis на вашей машине или нет.

если не гуглите найдете.

-> проверьте эти пункты, правильно ли вы сделали:

1. проверьте, имеют ли данные, которые вы отправляете в сокеты, строковый формат.

2. проверьте, что json, который вы отправляете в сокеты, правильно проанализирован.

3. аналогичным образом проверьте правильность обработки данных, полученных из сокетов.

если вы хотите автоматически переподключаться к сокетам, используйте https://github.com/joewalnes/reconnecting-websocket скопируйте туда файл js и поместите скрипт в свой html, а затем замените WebSocket на ReconnectingWebSocket

person penmetsa abhi    schedule 06.07.2019

Эта проблема возникает из-за того, что канал reddis не работает на бэкэнде после настройки в settings.py, вы должны запустить канал reddis

если вы используете докер, попробуйте это

докер запустить -p 6379:6379 -d редис: 5

person Piyush Ranjan Chaudhary    schedule 20.05.2020
comment
Как я могу начать без использования докера? - person MareksNo; 29.08.2020
comment
sudo systemctl перезапустить redis.service статус sudo systemctl redis - person decoder; 19.05.2021

если у вас проблемы с подключением к django-каналам,

каналы первой установки --› pip install -U каналы после установки каналов добавьте приложение установки «каналы» в файл settings.py и следуйте этим документам, чтобы правильно установить каналы в вашем проекте django --› https://channels.readthedocs.io/en/latest/installation.html

после установки каналов django теперь установите каналы-redis в свой проект django,

Первым шагом является установка Redis на вашем локальном компьютере, но установите Redis 5 или выше, следуйте инструкциям по установке, чтобы установить сервер Redis в Ubuntu и загрузить Redis напрямую, если вы используете Windows. шаги по загрузке и установке по этой ссылке --› https://redis.io/download

после установки redis на вашем локальном компьютере установите каналы-redis в вашем проекте django --› pip installchannels-redis==2.4.2

это последнее решение проблемы подключения каналов django с Redis, я надеюсь, что это поможет вам

person Sulabh Thakur    schedule 06.11.2020