websocket-chat / src /index.ts
harsh-dev's picture
Add application file
a7476ec unverified
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}`)
})