Minimalist WebSocket client and server for real-time applications with RPC, PubSub, Rooms and Game state synchronization based on WS https://github.com/websockets/ws
- 🚀 Lightweight and easy
- 📡 RPC - Remote Procedure Calls with built-in error handling
- 🎯 PubSub - Very simple Publish/Subscribe system
- 🏠 Room-based management system
- 🎮 Game-ready with fixed timestep game loop and state synchronization
For a detailed guide on how to get started with WsMini, including setting up a server, connecting clients, and using RPC and PubSub features, please refer to the Getting Started Guide.
Documentation is available in the docs
directory and includes examples for both client and server usage, as well as advanced features like Room management and Game state synchronization.
WsMini is designed for small web games and real-time applications with a focus on simplicity and ease of use:
- Authentication & Security: Supports token transmission during handshake and basic WebSocket security. User accounts, rate limiting, and additional security checks should be handled by your application
- Scalability: Targeted for small to medium applications, scaling features are outside the scope
npm install wsmini
In browsers, use the client classes:
import { WSClient, WSClientRoom } from 'wsmini';
In Node.js, use the server classes:
import { WSServerPubSub, WSServerRoomManager, WSServerRoom, WSServerGameRoom, WSServerError } from 'wsmini';
You will find complete examples demonstrating some of the features of WsMini in the docs/examples
directory. Each example includes both server and client code with HTML interfaces. For more details, see the Examples Documentation.
WsMini includes a test suite with 300 tests covering all components and features.
# Install dependencies
npm install
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
# Run tests in watch mode
npm run test:watch
For detailed testing information, see the Test Documentation.