Developer Tools

Socket.IO connection test

MUDBASE realtime uses Socket.IO, not a raw WebSocket URL. Tools like wscat cannot complete the Socket.IO handshake.

What to use

  • socket.io-client in Node or the browser (same as production).
  • Full reference: Socket.IO docs.

Minimal Node script

Install: npm i socket.io-client

javascripttest-socket.mjs
import { io } from "socket.io-client"

const token = process.env.MUDBASE_JWT // access JWT (scope api or websocket)

const socket = io("https://cloud.mudbase.dev", {
  path: "/socket.io/",
  transports: ["websocket", "polling"],
  extraHeaders: { Authorization: `Bearer ${token}` },
})

socket.on("connect", () => console.log("connected", socket.id))
socket.on("connect_error", (err) => console.error("connect_error", err.message))
socket.on("error", (payload) => console.error("error", payload))

// Example: join a project room
socket.emit("subscribe:project", "YOUR_PROJECT_ID")
socket.on("db:create", (evt) => console.log("db:create", evt))
import { io } from "socket.io-client"

const token = process.env.MUDBASE_JWT // access JWT (scope api or websocket)

const socket = io("https://cloud.mudbase.dev", {
  path: "/socket.io/",
  transports: ["websocket", "polling"],
  extraHeaders: { Authorization: `Bearer ${token}` },
})

socket.on("connect", () => console.log("connected", socket.id))
socket.on("connect_error", (err) => console.error("connect_error", err.message))
socket.on("error", (payload) => console.error("error", payload))

// Example: join a project room
socket.emit("subscribe:project", "YOUR_PROJECT_ID")
socket.on("db:create", (evt) => console.log("db:create", evt))

Browser console (quick)

On a page that already loads socket.io-client, or paste a CDN build, then connect with auth: { token: "…" } as in the connection docs.

Note
Do not use wss://…/ws or plain WebSocket clients — they will not speak Socket.IO. Use the API origin with path /socket.io/.