2011-01-20 4 views
6

Facebook과 같은 푸시 알림 시스템을 만들고 싶습니다. 페이스 북에서 누군가에게 (게시물에 댓글을 달고, 태그를다는 등) 알려주려고하면 화면 왼쪽 하단에 작은 알림이 표시됩니다. 페이드 인하 고 페이드 아웃합니다.Rails 및 jQuery가 포함 된 Facebook과 유사한 푸시 스타일 알림

jQuery와 Rails로 어떻게 시스템을 구축 할 수 있습니까? 그것은 어떻게 작동합니까? JS가 지속적으로 서버에 "새로운 알림이 있습니까?"라고 묻습니다. 아니면 어떻게 든 서버를 을이 서비스에 푸시하십시오.

지금 사용자가 다른 사용자에게 메시지를 보내는 경우 (예를 들어), 사용자 대기열에 "새 메시지가 있습니다"라는 알림을 추가 할 수 있지만 페이지가 다시로드 될 때까지 표시되지 않습니다.

답변

6

Juggernaut 정말 멋지게 보입니다. 오랜 시간 전에 데모 된 것을 보았습니다. 지금은 node.js 위에 다시 작성되었습니다. 좋은. Redis와 node.js를 설치하고 node.js 서버를 실행해야하며 나머지는 간단합니다.

Pusherapp.com도 멋지게 보입니다 만, 적어도 추가 서비스를 설치하고 실행할 필요는 없습니다. (그리고 데몬, 스케일 등).

하지만로드가 너무 크지 않으면 간단하게 유지하고 자바 스크립트를 사용하여 폴링하는 것이 좋습니다. 자신 만의 글을 쉽게 작성할 수 있지만 (너무 어렵지는 않습니다.) jquery에는 이미 아주 훌륭한 플러그인이 있습니다. 예 : PeriodicalUpdater.

4

현재 이러한 문제는 Comet을 사용하여 해결할 수 있습니다. 자세한 내용은

, http://en.wikipedia.org/wiki/Comet_(programming)

은 기본적으로 브라우저는 HTTP 상태 비 저장 프로토콜 인을 사용하고 만 요청에서 작동하기 때문에 다음 응답 좀 길, 우리가 정말 진정한 푸시 알림을받을 수 없다. 브라우저에 푸시하고 싶을 때 우리는 어떻게 든 TCP/소켓을 연결과 같이 흉내 내야합니다. 혜성은 그러한 기술을 정의하는 데 사용되는 용어 일뿐입니다.

여기에 도움이되는 많은 라이브러리가 있습니다. 궤도에 올라있는 저거 너트.

새로운 브라우저에는 Websockets Protocol (웹 소켓 프로토콜)이라는 것이 있습니다. 언급 한 라이브러리에서도이 점을 이용합니다. 그것의 광대 한 화제, 그러나 나는 아주 확신한다, 너는 Juggernaut와 가로장을 가진 몇몇 기본적인보기를 발견 할 것이다.

또한 http://pusherapp.com이 있는데, 동일한 일을하지만 돈을 청구합니다.

2

이 보쉬, 또는 동기 HTTP를 통해 양방향 스트림처럼 사이트의 많은 기능을 달성하는 또 다른 방법 :

http://code.stanziq.com/strophe/

: 여기

http://en.wikipedia.org/wiki/BOSH

이 거기에 몇 가지 자바 스크립트 라이브러리 중 하나입니다

이 유형의 설정에는 백엔드에서 xmpp/bosh 서버가 필요하지만 기본적으로 브라우저는 연결을 열어 놓고 (혜성과 매우 유사합니다) 메시지가 이마에 들어옵니다 그들을 처리합니다.

이 기술은 알림, 채팅 및 실시간으로 일어나기를 원하는 모든 것에 사용할 수 있습니다.