DocumentationCore Protocol

@painda/video

A fast WebRTC signaling server built directly into PaindaProtocol.

How it works

  • Out-of-the-Box Signaling: WebRTC requires a central server to exchange SDP Offers, Answers, and ICE candidates before establishing a P2P connection.
  • Room Based: Clients join a "Call Room" and the Signaling server automatically targets the right peers.
  • Zero Setup routing: The \`SignalingServer\` class handles all message delegation for you.

Server Usage

import { PPServer } from "@painda/core";
import { SignalingServer } from "@painda/video";

const server = new PPServer({ port: 7001, registry });
const rtcManager = new SignalingServer(server);

server.on("connection", (client) => {
  client.on("message", (msg) => {
    if (msg.type === "rtc-signal") {
      // Handles join, leave, offer, answer, and candidate routing
      rtcManager.handleSignal(client, msg);
    }
  });
});