서비스형 WebSocket
foony.com의 채팅과 실시간 데이터를 움직이는 관리형 실시간 플랫폼, foony.io에서 모든 개발자에게 열려 있어요.
WebSocket 서비스는 여러분의 서버와 연결된 모든 클라이언트 사이에 지속적인 연결을 유지해줘요, 그래서 업데이트가 다음 페이지 새로고침이 아니라 발생하는 순간 도착해요. Foony Realtime은 연결, 재연결, 팬아웃, 프레즌스, 메시지 기록 같은 화려하지 않은 부분을 대신 처리해줘요, 모두 작은 SDK 하나 뒤에서요.
실시간으로 체험해보세요
아래의 모든 것은 지금 이 순간 realtime.foony.io의 프로덕션 서비스에서 실행되고 있어요. 이 페이지를 두 번째 탭으로 열어서 두 화면이 서로를 그대로 반영하는 걸 지켜보세요.
프레즌스와 실시간 커서
이 페이지를 읽는 모든 사람이 여기에 나타나요, 채널 프레즌스에서 바로 가져온 거예요. 커서 위치는 일시적 메시지로 전달돼요, 저장을 완전히 건너뛰는 저지연 계층이죠.
실시간 채팅
이건 이 페이지의 진짜 채팅이에요, 모든 Foony 페이지와 게임 방이 사용하는 것과 같은 @foony/chat 방이죠. 메시지는 기록이 있는 하나의 채널로 도착하고, 전송은 Foony 서버를 거쳐서 모든 메시지가 관리돼요.
최근에 아무도 말하지 않았어요. 분위기를 깨보세요.
데이터베이스 동기화
이건 foony.com의 실제 운영 파이프라인이에요: 아무 Foony 사용자 이름을 입력하면 그들의 공개 Postgres 행이 사이트의 WebSocket을 통해 스트리밍되고, 그들이 플레이하는 동안 실시간으로 계속 업데이트돼요. 폴링도, API 엔드포인트도 필요 없어요.
찾는 중…
팀들이 WebSocket을 직접 만들지 않고 구매하는 이유
- 메시지를 잃지 않는 재연결. 브라우저는 연결을 끊임없이 끊어요. 클라이언트는 히스토리 재생으로 멈춘 지점부터 이어가서, 불안정한 연결이 메시지 누락으로 이어지지 않아요.
- 대규모 팬아웃. 하나의 메시지를 10만 명의 구독자에게 1초 안에 전달하는 건 어려운 분산 시스템 문제예요. 여기선 그게 통째로 우리 일이에요.
- 관리 부담 없는 프레즌스. 지금 누가 온라인인지 확인하고 입장, 업데이트, 퇴장 이벤트에 반응하세요, 하트비트와 타임아웃 로직을 직접 작성할 필요 없이요.
- 용량 계획이 필요 없어요. WebSocket 서버는 상태를 가지고 있어서, 직접 확장하려면 드레이닝, 샤딩, 스티키 라우팅이 필요해요. 관리형 서비스는 그걸 다른 사람의 호출기로 넘겨줘요.
Foony Realtime로 얻을 수 있는 것
채널과 pub/sub
이름이 붙은 이벤트를 WebSocket이나 REST로 앱 범위 채널(예: chat:lobby)에 예측 가능한 전달 방식으로 팬아웃하세요.
프레즌스
누가 온라인인지 추적하고, 멤버십을 자동으로 갱신하며, 입장, 업데이트, 퇴장 이벤트에 반응하세요.
메시지 히스토리
내구성 있는 저장소에서 최근 메시지를 재생해서 클라이언트가 재연결 후 깔끔하게 복구돼요.
토큰 인증
채널 단위의 발행, 구독, 프레즌스, 히스토리 권한을 가진 단기 클라이언트 토큰을 백엔드에서 발급하세요.
Pusher 호환
Pusher 프로토콜을 사용해서, pusher-js와 Laravel Echo 앱이 재작성 없이 설정 변경만으로 연결돼요.
데이터베이스 동기화
Postgres 변경 사항을 구독한 클라이언트에게 라이브 쿼리로 바로 스트리밍하세요, 폴링도 접착 코드도 없이요.
전체 연동이 몇 줄이면 돼요:
const realtime = new Realtime({ authCallback });
const channel = realtime.channels.get('chat:lobby');
channel.on((message) => {
showMessage(message.data);
});
await channel.publish('message', { text: 'hello' });
await channel.presence.enter({ name: 'Acorn' });실제 게임에서 검증됨
Foony는 채팅과 실시간 데이터베이스 업데이트를 위해 Foony Realtime을 폭넓게 활용해요. 매달 약 150만 명의 플레이어가 대략 5억 개의 메시지를 위해 foony.io에 의존하는데, 멀티플레이어 게임은 그 메시지가 빠르게, 순서대로, 정확히 한 번씩 도착할 때만 제대로 느껴져요. foony.io의 신뢰성과 비용 효율성이 없었다면 Foony는 불가능했을 거예요.
직접 확인해보세요 우리 게임에서요, 그리고 foony.io에서 대시보드와 SDK로 동일한 인프라를 사용해보세요.

직접 트래픽으로 사용해보세요
무료 요금제에는 매달 900만 개의 메시지가 포함돼요. 신용카드가 필요 없어요.
자주 묻는 질문
WebSockets as a service가 뭐예요?
앱과 사용자 사이의 지속적인 연결을 관리해주는 매니지드 플랫폼이에요. 직접 WebSocket 서버를 운영하는 대신, 클라이언트는 서비스에 연결하고, 백엔드는 SDK나 REST를 통해 채널에 메시지를 발행하며, 서비스가 전달, 재연결, 프레즌스, 히스토리를 처리해줘요.
Foony Realtime은 Pusher나 Ably와 어떻게 다른가요?
채널, 프레즌스, 히스토리, 토큰 인증이라는 동일한 핵심 기능을 다루고, Pusher 프로토콜을 지원해서 Pusher 대체제로 그대로 사용할 수 있어요. 차이점은 출처와 가격이에요. 우리 자체 멀티플레이어 게임 사이트인 foony.com을 위해 만들어졌고, 무료 요금제에는 매달 900만 개의 메시지가 포함돼요.
전환하려면 앱을 다시 작성해야 하나요?
보통은 아니에요. pusher-js와 Laravel Echo 앱은 설정만 바꾸면 Foony Realtime을 가리킬 수 있어요. 새 프로젝트는 사용해요: JavaScript와 TypeScript용 @foony/realtime SDK, Go SDK, 또는 REST API 를 어떤 언어에서든 사용할 수 있어요.
비용은 얼마인가요?
무료 요금제에는 매달 900만 개의 메시지가 포함돼요. 유료 플랜은 월간 용량을 추가하고, 플랜을 초과하는 사용량은 100만 메시지당 청구돼요. 현재 수치는 여기에 있어요: foony.io/pricing.