Package Exports
- wsmini
- wsmini/client
- wsmini/server
Readme
WsMini
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
Features
- 🚀 Lightweight and easy
- 📡 RPC - Remote Procedure Calls with built-in error handling
- 🎯 PubSub - Very simple Publish/Subscribe system (sends messages directly to connected clients without message queuing)
- 🏠 Room-based management system
- 🎮 Game-ready with fixed timestep game loop and state synchronization
Getting Started
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
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.
Scope & Use Cases
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
Installation
npm install wsmini
Usage
For Browser (Client-side)
In browsers, use the client classes:
import { WSClient, WSClientRoom } from 'wsmini';
For Node.js (Server-side)
In Node.js, use the server classes:
import { WSServerPubSub, WSServerRoomManager, WSServerRoom, WSServerGameRoom, WSServerError } from 'wsmini';
Examples
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.
Testing
WsMini includes a test suite with 300 tests covering all components and features.
Running Tests
# 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.