액터를 사용하여 websocket을 통해 클라이언트에 메시지를 보냅니다. 따라서 연결된 각 클라이언트는 자체 액터를 얻습니다. 비즈니스 논리는 단순히 actorSystem.actorSelection(s"/user/connections/UserQueues-${userId}") ! Message(content)
입니다. 특정 유형의 메시지의 경우 클라이언트가 연결되어 있지 않은 경우 메시지를 유지하고 클라이언트가 연결될 때 메시지를 다시 전달해야합니다. 전달되지 않은 메시지를 기억할 메시지를 배우에게 라우팅하는 가장 좋은 방법은 무엇입니까? 이것은 사용자가 아직 연결되어 있지 않고 "/ user/connections/UserQueues - $ {userId}"경로의 액터가 계층 구조에없는 경우에 발생합니다.액터가 akka에 생성되지 않은 경우 다른 액터에게 메시지를 전달하는 방법
1
A
답변
0
websocket 액터를 제어한다면이 메시지를받는 ACK를 만들 수 있습니다. 그리고 ACK가 없으면 몇 번이고 다시 전송할 것입니다. Akka는 akka-persistence의 AtLeastOnceDelivery에서 이것을 지원하고 있습니다. 사용 방법은 AtLeastOnceDelivery example in docs입니다.
긴 이야기를 짧게, 당신은 deliver(destination, deliveryId => Msg(deliveryId, s))
-!
를 사용하여 전환 한 후이 메시지가 전달되었는지 확인하는 방법을 찾을 필요 (보낸 사람에게 다시 확인을 보낸 다음 그 안에 confirmDelivery
전화).
희망이 도움이됩니다.
관련 문제
- 1. 유스 케이스 다이어그램 : 액터가 다른 액터에게 뭔가를 전달합니다
- 2. 액터가 특정 메시지를 수신했는지 테스트합니다.
- 3. ActorSystem 내의 모든 액터에게 메시지 보내기
- 4. Akka : 액터에게 별칭 경로를 할당하는 방법
- 5. 새 메시지를 다른 클래스에 전달하는 방법
- 6. tell()에 문제가 있습니까? 맞춤 Akka 라우터의 다른 액터가 있습니까?
- 7. GridView가 채워지지 않은 경우 메시지를 표시하는 방법
- 8. Akka에 경량급 배우가 있습니까?
- 9. 배열이 아직 생성되지 않은 경우 Ng-init
- 10. 스칼라 액터에게 메시지를 보내기위한 기호 또는 사례 클래스?
- 11. 모든 액터가 브로드 캐스트 메시지를 수신했는지 어떻게 결정합니까?
- 12. 데이터베이스가 아직 생성되지 않은 경우 mysqli 변수를 초기화하는 방법
- 13. 항목이 아직 생성되지 않은 경우 ID를 설정하는 방법 ..?
- 14. 아직 생성되지 않은 액터로 메시지를 보내지 않으려면 어떻게해야합니까?
- 15. 액터가 끝날 때까지 기다리십시오()
- 16. C#. 안전하지 않은 콜백에서 관리되는 코드로 메시지를 전달하는 방법
- 17. asytask에서 activite로 메시지를 전달하는 방법
- 18. Play Framework 2에서 외부의 액터에게 메시지를 보내는 방법은 무엇입니까?
- 19. 다른 서버에서 메시지를 전달하는 Python WebSocket 서버
- 20. asp.net의 버튼 클릭 이벤트에서 다른 페이지로 리다이렉트 메시지를 전달하는 방법
- 21. 다른 유형의 일련 화 된 메시지를 네트워크에서 전달하는 방법
- 22. 여러 클라이언트가있는 서버 : 한 클라이언트에서 다른 클라이언트로 메시지를 전달하는 방법
- 23. 아직 생성되지 않은 목록에 추가하는 방법. 도와주세요!
- 24. Scala, Play, Akka, Websocket : websocket을 통해 액터 메시지를 전달하는 방법
- 25. WCF를 사용하여 창을 여는 메시지를 전달하는 방법
- 26. 모델 항목이 바인드되지 않은 경우 ModelState.AddModelError 메시지를 추가하는 방법
- 27. Amazon Sqs가 요청에 지정되지 않은 경우 SentTimestamp 메시지를 구성하는 방법
- 28. Q 터치 포인트가 생성되지 않은 경우 "데이터 중단 예외가 발생했습니다"
- 29. 디자이너에서 생성되지 않은 속성 만들기
- 30. 클래스가 생성되지 않은 경우 메소드를 설정하는 방법은 무엇입니까?
응답 해 주셔서 감사합니다. 나는 재 전달이 나의 경우에 잘 작동한다고 생각하지 않는다. 배달되지 않은 메시지는 클라이언트가 로그인 할 때까지 며칠 동안 저장 될 수 있습니다. 클라이언트가 로그인 한 직후에 메시지를 표시해야하기 때문에 재전송 시간 제한을 너무 크게 만드는 것은 선택 사항이 아닙니다. 서버를 너무 작게 만들면 서버에 불필요한 부담이 듭니다. 사실 사용자를 나타내는 액터가 아직 인스턴스화되지 않았기 때문에 데드 레터 큐에 바인딩 된 메시지를 가로 챌 수있는 좋은 방법이 필요합니다. 전달되지 않은 메시지의 저장/검색은 간단한 작업입니다. – andruha