2012-07-25 4 views
4

PubNub를 사용하여 웹 서버에서 클라이언트로 간단한 실시간 메시지를 푸시하기위한 시스템을 설정하려고합니다. 나는 Heroku에서 Django를 실행하고있다.서버와 클라이언트간에 Real-Time Push API 채널을 설정하는 좋은 방법

특히 서버와 클라이언트 사이에 채널을 설정하는 방법에 관심이 있습니다. 두 채널간에 고유 한 채널 ID를 공유해야합니다.

우리의 웹 사이트는 소셜 네트워킹 사이트의 한 유형입니다. 많은 사용자가 한 번에 로그인됩니다. 우리는 새로 고침을하지 않고도 새로운 메시지 나 친구 요청과 같은 것을 얻을 때 인터페이스를 업데이트하는 방법을 원할뿐입니다.

나는 무엇을 해야할지 생각하고 있지만 잘 모르는 몇 가지 모범 사례가있을 수 있다고 생각했기 때문에 피드백을 얻고 싶었습니다. 이미이 사용자에 대한 데이터베이스의 채널 ID 기록이있는 경우 로그인시

  1. 이 POST 검사에 대한 API 엔드 포인트
  2. 핸들러 함수에 클라이언트 게시물 확인합니다.
  3. 그렇다면 새로운 채널 ID (UUID)로 레코드를 업데이트합니다. 그렇지 않은 경우이 사용자의 ID와 채널 ID를 사용하여 새 레코드를 만듭니다.
  4. 채널 ID를 사용자에게 반환합니다.
  5. 로그 아웃시이 레코드가 삭제됩니다.

기술적으로 이것이 REST 원칙을 위반하는 것으로 우려됩니다. API 끝점에 대한 단일 호출은 POST와 같이 데이터 서버 쪽을 만들고 GET과 같이 클라이언트에 데이터를 반환하는 기능을합니다.

관련 모범 사례에 대한 의견을 보내 주시면 감사하겠습니다. 감사!

답변

4

Pusher을 사용하면 도움이 될 것 같습니다. 그들은 클라이언트가 (브라우저를 통해 소켓을 통해) 푸셔 (Pusher)에 가입하고 다양한 채널에서 청취 할 수있게 해주는 웹 호스팅 공급자입니다. 그런 다음 Pusher에 간단한 API 호출을 보냅니다. Pusher는이를 연결된 모든 클라이언트에 브로드 캐스팅합니다.

이것은 입니다. AJAX를 통해 폴링하거나 자신의 웹 소켓 작업을 수행하지 않고도 실시간으로 많은 클라이언트를 실시간으로 업데이트 할 수 있습니다.

푸시 어를 한 번 사용해보십시오. (참고로 자유 계층은 매우 관대합니다.)

관련 문제