작성
·
1.3K
·
수정됨
0
import asyncio
import os
import django
from channels.layers import get_channel_layer
os.environ["DJANGO_SETTINGS_MODULE"] = "backend.settings"
django.setup()
async def main():
channel_layer = get_channel_layer()
print(channel_layer)
message_dict = {'content': 'world'}
await channel_layer.send('hello', message_dict)
response_dict = await channel_layer.receive('hello')
is_equal = message_dict == response_dict
print("송신/수신 데이터가 같습니까?", is_equal)
asyncio.run(main())
channel_layer가 자꾸 None으로 지정되서
channel_layer.send
이 부분도 실행이 안됩니다.
구글링도 해보고 chatgpt에도 물어보고
redis 버전도 낮춰보고 다했는데 안됩니당..
redis 4.3.6
channels 4.0.0
channels-redis 4.1.0
입니다.
답변 3
1
안녕하세요.
강의 5:08 구간처럼 settings.CHANNEL_LAYERS 설정을 아래 스샷과 같이 확인해보셨나요?
settings.py 코드 내역과 장고 쉘에서 확인한 해당 설정값을 댓글로 보여주시겠어요?
get_channel_layer 구현을 보시면, CHANNEL_LAYERS에서 지정 alias 키의 설정이 없을 경우, None을 반환하기도 합니다. // CHANNEL_LAYERS 입력에서 오타가 있으시거나, 'default' 키에서 오타가 있으실 수도 있습니다.
확인해보시고, 댓글 부탁드립니다.
화이팅입니다. :-)
0
0
아무래도 프로젝트 설정파일을 못읽는거같아서
os.environ["DJANGO_SETTINGS_MODULE"] = "backend.settings"
이 부분을 수정했더니 잘 됩니다. !! 감사합니다.
os.environ["DJANGO_SETTINGS_MODULE"] = "backend.settings.settings로 바꿨어용 "
잘 구동된다니 다행입니다. :-)
그런데 settings 경로가 좀 이상한데요.
지금 settings.py 파일의 전체 경로가 어떻게 되나요? settings 폴더 안에 settings.py파일이 있나요?
맞습니다. 그 설정은 무시됩니다. 👍