2012-12-20 5 views
1

배경 : 사용자가 설문 조사에 답변을 추가하고이 답변을 다른 사용자에게 푸시 할 수있는 설문 조사 앱을 만들려고합니다 (예 : 질문이 "내가 좋아하는 프로그래밍 언어는 무엇입니까?") Haskell을 포함하면, 사용자는 "Haskell"을 답으로 추가 할 수 있으며 모든 사용자의 브라우저에 표시됩니다. 이것을 달성하기 위해 긴 폴링을 사용할 계획입니다.어떻게 장고보기 사이에 메시지 전달을 구현할 수 있습니까?

내 개념적 접근 방식 : 내가 정착 한 접근법은 관찰자 패턴과 같은 것을 설정하는 것입니다 (또는 정확히 관찰자 패턴과 비슷합니다. 패턴을 디자인하는 것이 처음입니다).

단계는 다음과 같을 것입니다. 브라우저는/app/longpoll에 요청합니다.이 append/longpoll은 타임 스탬프를 사용하여 변경 사항이 있는지 확인하기 위해 타임 스탬프를 사용하고, 변경 사항이 반환되면 2. 이벤트 위임자에 자신을 등록하고 메시지를 기다립니다. 그런 다음 브라우저가/app/UpdateSurvey에 요청하면보기가 실행되고 1. 설문을 업데이트하고 2. 설문이 변경되었음을 이벤트 위임자에게 알립니다.

내 질문 :이 문제를 해결하기위한 제격적인 접근 방법이라고 생각하면 어떻게 구현합니까? 이벤트 위임자로 활동하기 위해서는 대기중인 프로세스가 필요하지만 실제로 어떤 것이 있는지 잘 모르겠습니다. 이 프로세스를 등록하려면 어떻게해야합니까? 어떻게 등록합니까? 이 프로세스를 처음부터 어떻게 만들 수 있습니까? 응답이 설문 조사에 추가되면이 프로세스가 이벤트 위임에 바쁜 경우 어떻게됩니까?

나는 이것이 긴 답변을 요구하고 있으며 아마도 다른 사람들이 해결했기 때문에 기사/도서 권장 사항도 권장됩니다.

+1

방법에 대한 WebSocket을 대신 긴 폴링의 경우, 페이지를 열어 놓은 사용자 (구독자)에게 푸시 할 수 있습니까? – cerberos

+0

@cerberos 내 대상 인구는 주로 Internet Explorer를 사용합니다. – canisrufus

+0

이것은 정말로 전에 해결 된 것처럼 들립니다. django에 이것을 구현하는 패키지를 찾고, 파이썬을위한 다른 네트워킹 관련 도구를 고려해 보길 강력히 권합니다. – Marcin

답변

1

이것은 질문을 한 것과는 다른 해결책이지만, 웹 소켓을 사용하여 페이지가 열려있는 모든 사용자 (가입 된 클라이언트)에게 푸시하는 새로운 질문이 추가되면 post_save 신호를 사용하는 방법에 대해 알려주십시오.

편집 : 아, IE - (브라우저를 지원하는 경우 여전히 WebSocket을 사용합니다) WebSocket을 대신 Juggernaut을 사용, IE6 (나는 생각한다) 및 7에서 작동이 (내가 아는)

+0

"Juggernaut는 더 이상 사용되지 않습니다! 여기를 읽어보십시오." 그래서 불안정한 해결책이 될 수도 있지만 효과가있을 수 있습니다. –

+0

@Rickard Zachrisson은 현대적인 브라우저/HTML5가 기본 솔루션을 제공하므로 지원이 중단되었으므로 Internet Explorer는 지원하지 않으므로 대신 Juggernaut를 사용할 수 있습니다. – cerberos

관련 문제