본문으로 건너뛰기

활용 사례

실시간 채팅

채팅방은 presence 채널입니다. 멤버십은 채널에서 오지, 여러분이 동기화해 두는 테이블에서 오지 않습니다. 메시지는 이벤트가고, 입력 중 표시는 여러분의 서버에 닿지도 않습니다.

presence-room-42
  • presence 채널
  • 이벤트
  • 클라이언트 이벤트
  • 웹훅

어떻게 동작하는가

  1. 01인가합니다이 사용자가 들어와도 되는지 서버가 판단하고, 그 멤버 id를 돌려줍니다.
  2. 02멤버십을 그립니다구독이 멤버 목록을 돌려주고, 입장·퇴장 이벤트가 그것을 최신으로 유지합니다.
  3. 03메시지를 보냅니다서버가 저장하고 인가한 뒤, 이벤트로 publish됩니다.
  4. 04입력 중 표시클라이언트 이벤트로 구독자들 사이에서 오갑니다. 잠깐 쓰고 마는 것이라 왕복이 없습니다.

알아 두면 좋은 것

이력은 채널이 아니라 데이터베이스의 일입니다. 들어온 클라이언트가 받는 것은 그 이후의 것입니다. 지난 것은 HTTP로 불러오세요.

코드로 보기

room.js
js
const room = pusher.subscribe('presence-room-42')room.bind('pusher:subscription_succeeded', (members) => {  renderMemberList(members)})room.bind('pusher:member_added', (m) => addMember(m))room.bind('pusher:member_removed', (m) => removeMember(m))room.bind('message', (msg) => appendMessage(msg))// Ephemeral, straight between subscribers.input.oninput = () => room.trigger('client-typing', { at: Date.now() })

공식 Pusher 라이브러리를 손대지 않고 그대로 써서 작성했습니다. 설치할 PushCaster 패키지는 없습니다. 전체 문서

사람들이 만드는 다른 것들

모든 활용 사례
private-user-1e9

알림

서버의 이벤트 하나가, 사용자가 열어 둔 모든 화면에 전달됩니다.

애플리케이션을 만들고 직접 만들어 보세요.

Support