A simple WebSocket-based backend for a multi-room chat application. This backend allows clients to join chat rooms, send and receive messages in real-time, and maintains message history for each room with automatic expiration.
- Real-time chat using WebSockets
- Multiple chat rooms support
- Message history per room (auto-expires after 30 minutes of inactivity)
- System messages for join/leave events
- Simple, stateless server (no database required)
- Node.js (v16+ recommended)
- npm
- Clone the repository:
git clone <your-repo-url> cd RoomsBackend
- Install dependencies:
npm install
To start the server in development mode:
npm run devThe WebSocket server will run on ws://localhost:8080.
- Join Room
{ "type": "join", "username": "yourName", "roomId": "room1" } - Send Chat Message
{ "type": "chat", "message": "Hello!" } - Receive Message
{ "type": "chat", "sender": "user", "message": "Hello!", "timestamp": 123456789 } - Receive System Message
{ "type": "system", "sender": "system", "message": "user joined the room", "timestamp": 123456789 } - Receive History
{ "type": "history", "messages": [ ... ] }
src/index.ts- Main WebSocket server implementationsrc/types/- TypeScript type definitions
Haarush