Infra2025년 11월 28일2분 읽기

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

YS
YoungSam
조회 1470

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 });
  }
}
CloudflareDurable ObjectsServerless

댓글 0

아직 댓글이 없습니다.