24 lines
747 B
TypeScript
24 lines
747 B
TypeScript
import type { RequestHandler } from './$types';
|
|
|
|
export const GET: RequestHandler = async ({ request, platform }) => {
|
|
// WebSocket 업그레이드 요청인지 확인
|
|
const upgradeHeader = request.headers.get('Upgrade');
|
|
if (!upgradeHeader || upgradeHeader !== 'websocket') {
|
|
return new Response('Expected Upgrade: websocket', { status: 426 });
|
|
}
|
|
|
|
// Durable Object ID 생성 (모든 클라이언트가 같은 인스턴스에 연결)
|
|
const id = platform?.env.COUNTER.idFromName('global-counter');
|
|
|
|
if (!id) {
|
|
return new Response('Durable Object not configured', { status: 500 });
|
|
}
|
|
|
|
// Durable Object stub 가져오기
|
|
const stub = platform.env.COUNTER.get(id);
|
|
|
|
// Durable Object에 요청 전달
|
|
return stub.fetch(request);
|
|
};
|
|
|