Realtime SDK

Node SDK

Node SDK

Server-side SDK for Realtime server-to-server calls and webhook signature verification.

Installation

npm install @realtime-sdk/node

RealtimeServer

Main server-side client for admin API calls.

import { RealtimeServer } from '@realtime-sdk/node';
 
const realtime = new RealtimeServer({
  endpoint: 'https://api.dev.realtimesdk.dev',
  apiKey: process.env.REALTIME_API_KEY!,
});

Constructor Options

OptionTypeDescription
endpointstringRequired. Base HTTP URL of your Realtime server
apiKeystringRequired. Must match server SERVER_API_KEY
timeoutnumberOptional request timeout in milliseconds (default: 10000)

broadcast(roomId, event, data)

Broadcast an event to everyone currently connected to a room.

await realtime.broadcast('room-123', 'notification', {
  message: 'Server announcement',
});

getRoomUsers(roomId)

Get active users currently present in a room.

const users = await realtime.getRoomUsers('room-123');
// [{ id, connectionId, color, data, cursor, joinedAt }]

Webhooks

verifySignature(secret, signature, payload)

Verify X-Realtime-Signature HMAC signatures.

import { verifySignature } from '@realtime-sdk/node';
 
app.post('/webhooks/realtime', (req, res) => {
  const signature = req.headers['x-realtime-signature'];
 
  const valid = verifySignature(
    process.env.REALTIME_WEBHOOK_SECRET!,
    String(signature ?? ''),
    req.rawBody
  );
 
  if (!valid) {
    return res.status(401).send('Invalid signature');
  }
 
  res.status(200).send('OK');
});

On this page