1.6 KiB
1.6 KiB
Chatrooms
A collection of chatting rooms built with WebSocket technology.
Overview
This project consists of a WebSocket server and web frontend for real-time chat functionality. The server implements a custom WebSocket protocol, and the frontend provides a simple web interface for connecting to chat rooms.
Project Structure
chatrooms/
├── server/ # WebSocket server implementation
│ └── src/
│ ├── net/ # Network layer and WebSocket implementation
│ └── index.ts # Server entry point
├── frontend/web/ # Web frontend
│ └── src/
│ ├── main.ts # Frontend WebSocket client
│ └── style.css # Styles
└── package.json # Root workspace configuration
Architecture
- Server: Node.js TypeScript server with custom WebSocket implementation
- Frontend: Vanilla TypeScript web client using Vite for development
- Workspace: Managed as npm workspaces for monorepo development
Prerequisites
- Node.js (version specified in
.nvmrc) - npm
Installation
npm install
Development
Start the server
npm run dev:server
The server will start on port 3000.
Start the web frontend
npm run dev:web
Linting
# Lint server code
npm run lint:server
# Lint and fix server code
npm run lint:fix:server
Features
- Custom WebSocket server implementation
- Real-time bidirectional communication
- Connection management with keep-alive
- TypeScript throughout the stack
- Development tools with hot reload
Author
Alexander Zinn
License
ISC