본문으로 건너뛰기

무언가 바뀌면, 모두가 같은 순간에 봅니다.

PushCaster는 애플리케이션을 위한 관리형 실시간 인프라입니다. 업데이트를 한 번 publish하면 연결된 모든 브라우저와 휴대폰, 대시보드가 같은 순간에 그것을 받습니다. 폴링도, 새로고침 버튼도, 직접 운영할 연결 서버도 필요 없습니다.

두 번의 호출이면 바로 동작합니다

듣는 쪽은 브라우저에 한 줄, 보내는 쪽은 서버에 한 줄. 익혀야 할 저희 SDK는 없습니다. 아래 라이브러리는 이미 쓰고 계신 것들을 PushCaster로 향하게 한 것뿐입니다.

브라우저에서 — 이벤트를 기다립니다

client.js
js
import Pusher from 'pusher-js'// The same library you already use. One host override points it at PushCaster.const pusher = new Pusher('APP_KEY', {  wsHost: 'ws-eu1.pushcaster.io',  wsPort: 443,  forceTLS: true,})const channel = pusher.subscribe('presence-room')channel.bind('message', (data) => {  render(data.body)})

서버에서 — 보냅니다

server.js
js
import Pusher from 'pusher'const pusher = new Pusher({  appId: 'APP_ID',  key: 'APP_KEY',  secret: 'APP_SECRET',  host: 'api-eu1.pushcaster.io',  useTLS: true,})await pusher.trigger('presence-room', 'message', {  body: 'Deployed to production',})

app id와 key, secret은 대시보드에서 받습니다. 선택한 클러스터는 호스트의 일부입니다.

PushCaster가 제공하는 것

실시간 기능이란 약간의 제품 코드 아래 깔린 아주 많은 전달 장치입니다. 누가 subscribe했는지, 누구에게 권한이 있는지, 누가 아직 남아 있는지. 그 두 번째 부분이 이미 돌아가고 있습니다.

01

네 가지 채널

public, private, presence, 그리고 페이로드가 저희에게도 읽히지 않아야 할 때 쓰는 private-encrypted.

02

한 번 publish하면 모두에게 닿습니다

서버에서의 한 번의 호출이 모든 구독자에게 닿습니다. 누가 듣고 있는지 코드가 따로 추적할 필요가 없습니다.

03

채널로서의 presence

방에 누가 있는지는 채널이 답합니다. 여러분이 동기화해 두는 저장소가 아니라요.

04

클라이언트 이벤트

입력 중 표시와 커서는 구독자들 사이를 곧바로 오갑니다. 속도 제한이 걸려 있고, 여러분을 거치지 않습니다.

05

수명 주기 웹훅

접속 인원과 멤버십은 서명된 헤더와 함께 되돌아오므로, 연결이 보는 것에 백엔드가 반응할 수 있습니다.

06

어디서 돌릴지는 여러분이 정합니다

애플리케이션은 클러스터 안에 만들어지고 그 연결도 거기서 끝납니다. 현재 목록은 상태 페이지에 있습니다.

메시지가 실제로 지나는 길

전달과 과금은 분리된 계층에서 돌아갑니다. control plane 장애는 대시보드를 떨어뜨리지만 전달을 끊지는 않습니다.

클러스터는 메시지 전달에는 고가용이지만 presence에는 그렇지 않습니다. presence 저장소가 사라지면 presence와 접속 인원은 나빠지고, 그동안에도 public과 private 채널은 계속 전달합니다. 나중에 알게 되는 것보다 여기서 읽어 두는 편이 낫습니다.

실시간 계층 — 모든 패킷이 여기를 지납니다여러분의 서버trigger()api-eu1publishws-eu1deliver웹 앱모바일기기설정 전용control plane신원 · 과금 · 설정

같은 것이, 옷만 바꿔 입은 것

채팅, 대시보드, 알림, 공동 문서. 각각의 밑에는 하나의 생각이 있습니다. 무언가 바뀌었고, 보고 있는 모두가 그것을 알아야 한다는 것.

presence-room-42
presence

채팅과 협업

presence가 방에 누가 있는지 추적하고, 클라이언트 이벤트가 입력 중 표시와 커서를 나릅니다. 메시지는 publish되는 그 순간에 도착합니다.

private-metrics
private

실시간 대시보드

지표와 주문 흐름을 바뀌는 대로 열려 있는 모든 대시보드로 보냅니다. 맞춰야 할 폴링 주기도, 숫자가 이미 틀려 있는 구간도 없습니다.

private-user-1e9
private

알림

서버 쪽의 이벤트 하나가, 사용자가 열어 둔 모든 기기에, 그것을 일으킨 바로 그 왕복 안에서 닿습니다.

presence-game
presence

멀티플레이어와 실시간 상태

presence로 추적되는 멤버십을 갖춘 공유 상태 — 캔버스, 실시간 스코어, 두 사람이 같은 것을 봐야 하는 모든 것.

이미 Pusher의 Channels 라이브러리를 쓰고 계신가요?

애플리케이션당 세 줄에서 여섯 줄. 애플리케이션을 다시 작성할 필요는 없고, 연결 설정만 바꾸면 됩니다.

자격 증명은 옮겨지지 않고, 먼저 읽어 둘 만한 실제 차이가 몇 가지 있습니다. 둘 다 비교 페이지에 빠짐없이 적어 두었습니다.

호환성과 이전, 자세히
src/realtime.tsunified diff
const pusher = new Pusher(APP_KEY, {
- cluster: 'eu',
+ wsHost: 'ws-eu1.pushcaster.io',
+ wsPort: 443,
+ forceTLS: true,
})

선불 잔액에서 쓴 만큼

요금표는 하나뿐입니다. 플랜도, 등급도, 인원당 요금도, 월 약정도 없습니다. 보낸 만큼, 열어 둔 만큼, 옮긴 만큼 냅니다.

요금표

USD · 적용 2026년 9월 1일

  • 발행한 메시지

    $0.1100만 메시지당
  • 전달된 메시지

    $0.1100만 메시지당
  • 연결 시간

    $0.2연결 100만 분당
  • Connection milliseconds

    $0.2연결 100만 분당

pricing API에서 그대로 게시됩니다. 포함된 무료 한도는 그 하나의 요금표 안에 든 것이지 무료 플랜이 아닙니다.

과금이 작동하는 방식

상태를 공개합니다. 약속하지 않습니다

플랫폼에서 곧바로 읽어 옵니다. 구성 요소별·지역별 상태와 전체 장애 이력을 게시합니다. 근거를 댈 수 없는 가동률 수치는 내지 않습니다.

  • 문서

    채널 종류, 인증, 웹훅, 그리고 오류 코드 전체 레퍼런스.

  • 상태 페이지

    구성 요소별·지역별 상태, 지연 시간, 장애 이력.

  • 지원

    계정에서 티켓을 여세요. 기술적인 질문은 그 일을 하는 사람에게 닿습니다.

플랫폼 상태

모든 시스템 정상
  • WebSocket 서비스

    클라이언트 연결, 구독, 이벤트 전달.

    모든 시스템 정상
  • Publish API

    여러분의 서버에서 PushCaster로 이벤트를 publish.

    모든 시스템 정상
  • 대시보드

    로그인과 애플리케이션 관리.

    모든 시스템 정상
  • Control plane

    애플리케이션 설정, 과금, 계정 관리.

    모든 시스템 정상
  • eu1 · 서유럽
  • eu2 · 중부 유럽

$ export PUSHER_HOST=ws-eu1.pushcaster.io

호스트 하나만 바꾸세요.
코드는 그대로 두세요.

같은 프로토콜, 같은 SDK, 같은 인증 핸드셰이크. 애플리케이션을 하나 만들고 이미 쓰고 있는 라이브러리를 PushCaster로 향하게 하면, 실시간 기능은 몇 분 안에 동작합니다.

Support