v1.0 — Production Ready

Clean WebSockets

A clean, minimal WebSocket framework with middleware, rooms, tags, and horizontal scaling.

npm install emit.gg
Code Examples

Simple. Intuitive. Powerful.

emit.gg brings Express.js simplicity to WebSocket development.

Express-like Routing

Familiar app.on() syntax

Symbol Conventions

@ system, # rooms, * tags

Built-in Request/Reply

Promise-based messaging

server.js
1const { EmitApp } = require('emit.gg');
2 
3const app = new EmitApp();
4 
5app.on('@connection', (req) => {
6 console.log('Connected:', req.id);
7});
8 
9app.on('/ping', (req) => {
10 req.reply({ pong: true });
11});
12 
13app.listen(3000);

Why emit.gg?

See how emit.gg compares to other WebSocket solutions

Feature
emit.gg
Socket.IO
ws
Express-like API
Request/Reply
Middleware
Rooms
Tags
Namespaces
Redis Scaling
Auto-Reconnect
TypeScript
Full
Partial
None

Get Started in Minutes

Three simple steps to build your first real-time application

1

Install the package

terminal
$ npm install emit.gg
2

Create your server

server.js
const { EmitApp } = require('emit.gg');
const app = new EmitApp();
 
app.on('/ping', (req) => {
req.reply({ pong: true });
});
 
app.listen(3000);
3

Connect from client

client.js
const { EmitClient } = require('emit.gg');
 
const socket = await EmitClient.connect('ws://localhost:3000');
const result = await socket.request('/ping');
console.log(result); // { pong: true }