webxash3d-mserver
Version:
WebXash3D MServer
77 lines (53 loc) • 3.14 kB
Markdown
# 📡 WebXash3D-MServer
[](https://discord.gg/cRNGjWfTDd)
> In-game server registration + WebRTC signaling middleware for WebXash3D-powered multiplayer games.
> Built with Fastify, written in TypeScript, powered by Swagger, and designed for real-time gaming.
## 🧩 Features
* ✅ Lightweight HTTP server for server registration
* ✅ WebRTC signaling for peer discovery
* ✅ Automatic OpenAPI (Swagger) docs (can be disabled)
* ✅ Fastify-based (high-performance Node.js server)
* ✅ Built-in logging with optional pretty output
* ✅ Written in TypeScript
## 📦 Installation
```shell
npm install webxash3d-mserver
# or
yarn add webxash3d-mserver
```
## 🚀 Quick Start
```typescript
import {HTTPMServer} from "webxash3d-mserver"
const server = new HTTPMServer({
port: 3000, // Required: the port your signaling server will listen on
disableDocs: false, // Optional: disables Swagger docs (default: false)
logLevel: 'info', // Optional: Pino log level (e.g. 'info', 'debug', 'error')
enablePrettyLogs: true, // Optional: enable human-readable logs
})
server.start()
```
## 🧠 What Does It Do?
This package is meant to power the backend signaling infrastructure for games using WebXash3D. It does two main things:
1. Registers game servers so they appear in an in-game server list.
2. Handles WebRTC signaling to help clients and servers establish peer-to-peer connections.
It abstracts away the boring parts of multiplayer infrastructure so you can focus on your game.
## ⚙️ Constructor Options
| Option | Type | Description |
|--------------------|--------------|-------------------------------------------------------------------|
| `port` | `number` | Required. The HTTP server port to bind to. |
| `disableDocs` | `boolean` | Optional. Disables auto-generated Swagger docs. Default: `false`. |
| `logLevel` | `pino.Level` | Optional. Sets logging level. Default: `'info'`. |
| `enablePrettyLogs` | `boolean` | Optional. Enables pretty-printed logs. Default: `false`. |
## 📑 API Endpoints
| Method | Path | Description |
|--------|---------------|-----------------------------------------------|
| `GET` | `/v1/servers` | Required. Get list of registered game servers |
| `WS` | `/ws` | WS endpoint (client ↔ peer) |
| `GET` | `/docs` | Swagger UI (auto-generated API docs) |
## Discord Community
Need help? Want to share your project or ideas?
**[Join our Discord community](https://discord.gg/cRNGjWfTDd)** to connect with others!
## 📄 License
MIT License — free for personal and commercial use.
## 📝 Changelog
See [CHANGELOG.md](https://github.com/yohimik/webxash3d-fwgs/tree/main/packages/webxash3d-mserver/CHANGELOG.md) for a full list of updates and release history.