- Three-layer architecture: Universe → Lucidia → br-metaverse - Core engine with multi-mode rendering (illustrated/pixel/3d) - Spatial URL navigation system - Agent avatar system with NATS bridge - World management - Demo application with HUD - Deployment infrastructure (Cloudflare + K3s) - Comprehensive documentation Ready for Phase 2: Rendering Engine Implementation
38 lines
855 B
JavaScript
38 lines
855 B
JavaScript
/**
|
|
* Cloudflare Worker: WebSocket Gateway
|
|
* Bridges browser clients to NATS backend
|
|
*/
|
|
|
|
export default {
|
|
async fetch(request, env) {
|
|
const upgradeHeader = request.headers.get('Upgrade')
|
|
|
|
if (upgradeHeader !== 'websocket') {
|
|
return new Response('Expected WebSocket', { status: 426 })
|
|
}
|
|
|
|
const [client, server] = Object.values(new WebSocketPair())
|
|
|
|
server.accept()
|
|
|
|
server.addEventListener('message', async (event) => {
|
|
const data = JSON.parse(event.data)
|
|
|
|
// Forward to NATS
|
|
console.log('Forwarding to NATS:', data)
|
|
|
|
// Echo for now
|
|
server.send(JSON.stringify({ type: 'ack', data }))
|
|
})
|
|
|
|
server.addEventListener('close', () => {
|
|
console.log('Client disconnected')
|
|
})
|
|
|
|
return new Response(null, {
|
|
status: 101,
|
|
webSocket: client
|
|
})
|
|
}
|
|
}
|