fix vite config

This commit is contained in:
Jeff Emmett 2024-12-07 15:50:37 -05:00
parent 110fc19b94
commit 2e0a05ab32
2 changed files with 45 additions and 19 deletions

View File

@ -34,5 +34,8 @@ export default defineConfig({
alias: { alias: {
'@': '/src', '@': '/src',
}, },
},
define: {
'import.meta.env.VITE_WORKER_URL': JSON.stringify(process.env.VITE_WORKER_URL)
} }
}); });

View File

@ -129,29 +129,52 @@ export class TldrawDurableObject {
// what happens when someone tries to connect to this room? // what happens when someone tries to connect to this room?
async handleConnect(request: IRequest): Promise<Response> { async handleConnect(request: IRequest): Promise<Response> {
const sessionId = request.query.sessionId as string if (!this.roomId) {
if (!sessionId) return error(400, 'Missing sessionId') return new Response('Room not initialized', { status: 400 });
}
const { 0: clientWebSocket, 1: serverWebSocket } = new WebSocketPair() const sessionId = request.query.sessionId as string;
serverWebSocket.accept() if (!sessionId) {
return new Response('Missing sessionId', { status: 400 });
}
const room = await this.getRoom() const { 0: clientWebSocket, 1: serverWebSocket } = new WebSocketPair();
room.handleSocketConnect({ sessionId, socket: serverWebSocket })
const origin = request.headers.get('Origin') || '*' try {
serverWebSocket.accept();
const room = await this.getRoom();
return new Response(null, { // Handle socket connection with proper error boundaries
status: 101, room.handleSocketConnect({
webSocket: clientWebSocket, sessionId,
headers: { socket: {
'Access-Control-Allow-Origin': origin, send: serverWebSocket.send.bind(serverWebSocket),
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, UPGRADE', close: serverWebSocket.close.bind(serverWebSocket),
'Access-Control-Allow-Headers': '*', addEventListener: serverWebSocket.addEventListener.bind(serverWebSocket),
'Access-Control-Allow-Credentials': 'true', removeEventListener: serverWebSocket.removeEventListener.bind(serverWebSocket),
'Upgrade': 'websocket', readyState: serverWebSocket.readyState,
'Connection': 'Upgrade' }
} });
})
return new Response(null, {
status: 101,
webSocket: clientWebSocket,
headers: {
'Access-Control-Allow-Origin': request.headers.get('Origin') || '*',
'Access-Control-Allow-Methods': 'GET, POST, OPTIONS, UPGRADE',
'Access-Control-Allow-Headers': '*',
'Access-Control-Allow-Credentials': 'true',
'Upgrade': 'websocket',
'Connection': 'Upgrade'
}
});
} catch (error) {
console.error('WebSocket connection error:', error);
serverWebSocket.close(1011, 'Failed to initialize connection');
return new Response('Failed to establish WebSocket connection', {
status: 500
});
}
} }
getRoom() { getRoom() {