feat: Migración completa de SnatchGame a Nuxt 4
- Creado nuevo proyecto Nuxt 4 con estructura app/ - Servidor Colyseus separado para evitar problemas con decoradores - Migrado GameRoom y toda la lógica del juego - Implementado cliente con composables useGameClient - Panel de administración funcional - Componentes Vue migrados (HomeScreen, GameScreen, PlayerCard, etc) - Configuración para ejecutar ambos servidores (npm run dev:all)
This commit is contained in:
42
nuxt-snatchgame/server/colyseus-server.ts
Normal file
42
nuxt-snatchgame/server/colyseus-server.ts
Normal file
@@ -0,0 +1,42 @@
|
||||
import 'reflect-metadata'
|
||||
import { listen } from '@colyseus/tools'
|
||||
import { monitor } from '@colyseus/monitor'
|
||||
import { Server } from 'colyseus'
|
||||
import { WebSocketTransport } from '@colyseus/ws-transport'
|
||||
import { createServer } from 'http'
|
||||
import express from 'express'
|
||||
import cors from 'cors'
|
||||
import { GameRoom } from './rooms/GameRoom'
|
||||
|
||||
const port = parseInt(process.env.PORT || '2567', 10)
|
||||
const app = express()
|
||||
|
||||
// Enable CORS
|
||||
app.use(cors())
|
||||
app.use(express.json())
|
||||
|
||||
// Create HTTP & WebSocket servers
|
||||
const server = createServer(app)
|
||||
|
||||
const gameServer = new Server({
|
||||
transport: new WebSocketTransport({
|
||||
server
|
||||
})
|
||||
})
|
||||
|
||||
// Register GameRoom
|
||||
gameServer.define('game', GameRoom)
|
||||
.filterBy(['gameMode'])
|
||||
.sortBy({ clients: 1 })
|
||||
|
||||
// Health check
|
||||
app.get('/health', (req, res) => {
|
||||
res.json({ status: 'healthy' })
|
||||
})
|
||||
|
||||
// Colyseus monitor
|
||||
app.use('/monitor', monitor())
|
||||
|
||||
gameServer.listen(port)
|
||||
|
||||
console.log(`🎮 Colyseus server is listening on ws://localhost:${port}`)
|
||||
Reference in New Issue
Block a user