본문 바로가기
Infra2025년 11월 28일2분 읽기

Durable Objects — Cloudflare의 상태 저장 서버리스

YS
김영삼
조회 1811
Durable Objects — Cloudflare의 상태 저장 서버리스

Durable Objects란

Cloudflare Workers에서 상태를 유지할 수 있는 단일 스레드 객체입니다. 채팅, 게임, 협업 도구에 적합합니다.

채팅방 구현

export class ChatRoom {
  private sessions: WebSocket[] = [];
  private storage: DurableObjectStorage;

  constructor(state: DurableObjectState) {
    this.storage = state.storage;
  }

  async fetch(request: Request) {
    const [client, server] = Object.values(new WebSocketPair());
    server.accept();
    this.sessions.push(server);

    server.addEventListener("message", (msg) => {
      // 모든 세션에 브로드캐스트
      this.sessions.forEach(s => s.send(msg.data));
    });
    return new Response(null, { status: 101, webSocket: client });
  }
}

댓글 3

보보안전문가태호11개월 전
저도 이 방법 쓰고 있는데 대규모에서도 잘 됩니다.
데데이터사이언스현11개월 전
M1/M2 맥에서도 문제없이 동작하나요?
김김영삼데이터사이언스현11개월 전

대안으로는 글에서 언급한 것 외에 공식 문서에 더 있습니다. 확인해보세요.

Ctrl+Enter로 등록