rubiks-cube-mcp-server
Version:
MCP server for Rubik's Cube solving with real-time 3D visualization
51 lines (50 loc) • 1.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.WebSocketHandler = void 0;
class WebSocketHandler {
io;
sessions;
constructor(server, sessions) {
this.io = new (require('socket.io').Server)(server, {
cors: {
origin: "*",
methods: ["GET", "POST"]
}
});
this.sessions = sessions;
this.setupWebSocket();
}
setupWebSocket() {
this.io.on('connection', (socket) => {
console.error('Client connected:', socket.id);
socket.on('joinGame', (gameId) => {
socket.join(gameId);
console.error(`Client ${socket.id} joined game ${gameId}`);
const session = this.sessions.get(gameId);
if (session) {
socket.emit('gameState', {
gameId,
state: session.cubeState,
status: session.status
});
}
});
socket.on('disconnect', () => {
console.error('Client disconnected:', socket.id);
});
});
}
broadcastGameState(gameId, cubeState, status) {
this.io.to(gameId).emit('gameState', {
gameId,
state: cubeState,
status
});
}
close() {
if (this.io) {
this.io.close();
}
}
}
exports.WebSocketHandler = WebSocketHandler;