인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

양념치킨님의 프로필 이미지
양념치킨

작성한 질문수

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

(실습) 웹소켓 Liveblog

안녕하세요. Layer를 포함한 이번 예제에서 요청~응답 간 프로세스가 알고 싶습니다.

작성

·

421

·

수정됨

0

이전에 웹소켓 동작방식에 대해 남겨주신 답변 덕에 기본적인 동작방식은 이해했습니다.

다만 이번 예제에서 Layer가 개입되니 다시 헷갈리기 시작하네요 ㅠ

  1. Post 인스턴스는 Mixin을 통해 상속받은 CHANNEL_LAYER_GROUP_NAME를 가지고 있고 시그널을 통해 channel_layer_group_send를 호출하여 자신이 속한 그룹으로 메세지를 보내는 것 까지는 이해했습니다.

  • 그렇다면 channel_layer_group_send를 통해 보내는 메세지는 어떻게 LivingblogConsumer로 전송되어 처리되는 건가요? 단순히 Post모델이 가지는 group이름과 Consumer에 명시해놓은 group이름이 같기 때문에 내부적으로 알아서 LivingblogConsumer를 호출하여 처리하는것이 맞나요?

  1. Layer는 서버와 클라이언트(Consumer) 중간 과정에 존재하며, 그룹명으로 구별하여 메세지 전송 대상을 구별하는 용도이고(즉 서로 다른 Consumer instance들을 묶어주는 역할), 이번 예제에서는 Redis가 그 역할을 수행하고 있다고 생각하면 될까요?

뭔가 알듯 말듯하긴 한데 확신이 안 서네요

답변 1

1

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

안녕하세요.

말씀하신 내용이 맞구요.

Overview 수업에서 아래 슬라이드가 있습니다.

image

장고 채널스의 채널 레이어에서 Redis 백엔드는 Redis의 Pub/Sub 기능을 활용합니다.

Pub은 Publish의 약자로서 "메세지 발행"을 의미하며, Sub는 Subscribe의 약자로서 "메세시 구독"을 의미합니다. Redis에서는 "liveblog" 이름의 그룹에 메세지를 발행하면, "liveblog" 그룹 구독자들에게 메세지를 전달해줍니다.

살펴보시고, 긴가민가하신 부분을 이어서 질문 남겨주세요.

화이팅입니다. :-)

양념치킨님의 프로필 이미지
양념치킨
질문자

빠른 답변 정말 감사합니다!

양념치킨님의 프로필 이미지
양념치킨

작성한 질문수

질문하기