supercobra
(Daniel Guermeur)
7월 23, 2021, 3:48오후
1
안녕하세요,
문서대로 메시지 버스가 대상 사용자에게 메시지를 게시한다는 점을 이해하고 있습니다:
sam:
메시지를 게시할 때 누가 메시지를 볼 수 있는지를 지정합니다:
# 사용자 ID 100만 'santa' 메시지를 받습니다
MessageBus.publish('/secret', 'santa', user_ids: [100])
미들웨어는 메시지를 볼 권한이 없는 사용자에게 메시지를 분배하지 않습니다.
그러나 클라이언트가 채널 구독을 시도할 때 권한을 확인할 수 있는 방법이 있는지 궁금합니다. 다음과 같은 방식이 가능할까요:
MessageBus.on_subscribe('/bank_account_123') do
if current_user.bank_account == 123
# 구독 허용
else
# 구독 거부
end
pfaffman
(Jay Pfaffman)
7월 24, 2021, 1:20오전
2
이 분야 전문가라기보다는, 버스(bus)로 데이터를 보내는 게시(publishing) 쪽에서 접근을 제어하는 것이 맞을 것 같고, 수신(watching) 쪽에서는 아닐 것 같습니다.
sam
(Sam Saffron)
7월 24, 2021, 5:56오전
3
사용 사례에 대해 조금 더 자세히 설명해 주시겠어요? 무엇을 구축하려고 하시나요?
supercobra
(Daniel Guermeur)
7월 28, 2021, 6:15오후
4
우리는 앱 중 하나를 리툴링하고 Action Cable을 Message Bus로 교체하고 있습니다. 기존 패턴은 구독 시 권한을 확인하는 방식이었지만, 이제 Message Bus를 의도된 대로 사용할 수 있을 것 같습니다. 그래서 괜찮습니다. 참고로 Message Bus는 아주 잘 만들어져 있네요.