Live Socket.IO API

A Socket.IO API that logs itself.

Rooms, messages, and broadcasts over Socket.IO — with every connect, join, and message written to MySQL automatically. REST API, live dashboard, and a browser playground included.

client.ts
import { io } from "socket.io-client";

const socket = io("https://your-domain.com", {
  path: "/socket.io",
});

socket.on("connect", () => {
  socket.emit("join", { room: "lobby" });
});

socket.on("message", (msg) => {
  console.log(msg); // also written to MySQL
});

Not a mockup — this is the same data your dashboard sees, live

Active connections
0

Right now

Messages (24h)
0
Connects (24h)
0
All-time events
0

Everything the API does

A complete real-time backend, not just a socket handler.

Real-time events

join, leave, and message events over Socket.IO, with rooms and ack callbacks built in.

MySQL event logging

Every connect, disconnect, message, join, leave, and error is written to a socket_logs table automatically.

REST API

Health, paginated log queries, aggregate stats, and server-to-server broadcast — all plain REST endpoints.

Live dashboard

Watch connections and events in real time, then dig into a searchable, filterable log table.

Browser playground

Connect a test socket, join rooms, and send messages — no code required to try the API.

Deploy anywhere

One Node.js process serves the API, dashboard, and Socket.IO on a single port — Hostinger, a VPS, or any Node host.

How it works

Three steps from connection to queryable history.

01

Connect

Point socket.io-client at your domain. No separate port to configure.

const socket = io("https://your-domain.com", {
  path: "/socket.io",
});
02

Join & send

Join a room and emit a message — both get acknowledged and logged.

socket.emit("join", { room: "lobby" });

socket.emit("message", {
  room: "lobby",
  text: "hello!",
});
03

Query it back

Every event is already in MySQL, queryable through the REST API.

curl "https://your-domain.com/api/logs?room=lobby&limit=20"

See your events flow in, live.

The dashboard is already running — connect a socket and watch it show up.