9

내 백엔드가 Postgres에 있습니다. Scala를 사용하여 API를 작성합니다.스칼라 + 재생 + Akka. Backbone.js가 필요합니까?

데이터베이스에 변경 사항이있을 때마다 Chrome 확장 프로그램에 알림을 보내고 싶습니다. 이것에 관한 몇 가지 질문이 있습니다 :

  1. 여기에 웹 소켓을 구현해야합니까, 아니면 긴 폴링을해야합니까?
  2. 웹 소켓이라면 scala + play + Akka 및 javascript를 사용하여 어떻게 할 수 있습니까?
  3. 나는 데이터가 변경되면 크롬 확장을 알리는 옵저버 패턴으로 구현해야한다고 생각합니다. 최소 DB 오버 헤드로 이러한 일을 처리하기 위해 따라야하는 다른 패턴이 있습니까?
  4. 이 알림 부분을 처리하기 위해 Redis 또는 RabbitMQ를 사용해야합니까? 내가 사용하는 것이
+2

Play는 여러 예제 응용 프로그램과 함께 배포됩니다. 나는 "WebSocket Chat"예제 프로그램이 Scala/Play/Akka/JavaScript/WebSockets 처리에 관해 배우는 데 도움이 _immensely_ 도움이된다는 사실을 발견했습니다. – Destin

+0

알림이 '실시간'(= 몇 초마다)으로 표시되지 않으면 '당기기'를 수행하고 브라우저 상태 버튼을 X 분/시간/일마다 새 상태로 업데이트하는 것을 고려하는 것이 좋습니다 . –

+0

풀 알림은 실시간으로 전송됩니다. 따라서 문제. – Hick

답변

2

1) http://socket.io/

3)이 흥미로운 질문이다. 옵저버 패턴은 일반적으로 프론트 엔드에서 사용됩니다. 이 기사 http://addyosmani.com/largescalejavascript/을 확인하시기 바랍니다. 그것은 내 응용 프로그램을 더 잘 구조화하는 데 도움이되었습니다. 기본적으로 EventBroker/Mediator가있는 Pub/Sub 패턴입니다. 게시자와 구독자를 분리하는 것이 이상적 일 것입니다. EventBroker를 응용 프로그램 네임 스페이스에 배치 할 수 있습니다. 모듈을 통해 참조를 항상 전달할 필요없이 모듈에서 메시지 버스에 액세스 할 수 있습니다.

4) 우리는 pinterest와 비슷한 기능을 가진 웹 사이트에서 실시간/실시간 알림을 위해 redis를 사용했습니다. 나는 redis 성과에 깊은 인상을받습니다.

관련 문제