Spaces:
Sleeping
Sleeping
| import http from 'http' | |
| import { WebSocketServer } from 'ws' | |
| import { RoomManager } from './services/RoomManager.js' | |
| import { MessageHandler } from './handlers/MessageHandler.js' | |
| const roomManager = new RoomManager() | |
| type wsData = Buffer | ArrayBuffer | Buffer[] | string | |
| const PORT = process.env.PORT || 7860 | |
| const server = http.createServer((req, res) => { | |
| // Handle simple GET / | |
| if (req.method === 'GET' && req.url === '/') { | |
| res.writeHead(200, { 'Content-Type': 'text/plain' }) | |
| res.end('Hello from WebSocket server without Express!') | |
| } else { | |
| res.writeHead(404, { 'Content-Type': 'text/plain' }) | |
| res.end('Not Found') | |
| } | |
| }) | |
| const wss = new WebSocketServer({ server }) | |
| wss.on('connection', (ws) => { | |
| console.log('connected to user') | |
| ws.on('message', (msg: wsData) => { | |
| MessageHandler.handle(msg.toString(), ws, roomManager) | |
| }) | |
| ws.on('close', () => { | |
| console.log('connection closed!') | |
| }) | |
| }) | |
| server.listen(PORT, () => { | |
| console.log(`Server running on http://localhost:${PORT}`) | |
| }) | |