인프런 커뮤니티 질문&답변

박찬진님의 프로필 이미지

작성한 질문수

파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편

혹시 이 오류가 왜 발생하는지 알 수 있을까요?

22.12.31 08:07 작성

·

403

0

 분명 로컬에서는 잘 되는데

외부 서버에서 돌려보면 채팅방을 누르면 밖으로 팅깁니다.(index 페이지로)

터미널을 보면

File "/home/chanjin613/.local/lib/python3.9/site-packages/asgiref/sync.py", line 490, in thread_handler

return func(*args, **kwargs)

File "/home/chanjin613/.local/lib/python3.9/site-packages/channels/consumer.py", line 125, in dispatch

handler(message)

File "/home/chanjin613/.local/lib/python3.9/site-packages/channels/generic/websocket.py", line 38, in websocket_connect

self.connect()

File "/home/chanjin613/mydjangochat/chat/consumers.py", line 33, in connect

async_to_sync(self.channel_layer.group_add)(

AttributeError: 'NoneType' object has no attribute 'group_add'

엄청 긴데 맨 마지막 부분을 가져왔습니다. 아니, 왜 로컬에서는 잘 되는데 웹 서버에서 돌리면 이럴까요?

답변 1

0

이진석님의 프로필 이미지
이진석
지식공유자

2022. 12. 31. 08:29

마지막 오류를 보시면, self.channel_layer 속성값이 None이라서 발생하는 오류입니다.

이는 settings내에 CHANNEL_LAYERS 설정값이 redis로 유효하게 설정되어있어야 합니다. 그래야만 consumer 내에서 self.channel_layer 속성값을 설정해줍니다.

내부와 외부의 코드가 같은데, 다르게 동작한다면 설정상의 이슈일 것입니다. 레디스 서버 동작을 확인해보시고, settings 내 CHANNEL_LAYERS 설정도 확인해보세요.

화이팅입니다. :-)