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 });
}
}
댓글 0