Package Exports
- quickrtc-server
- quickrtc-server/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (quickrtc-server) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
quickrtc-server
MediaSoup WebRTC server for QuickRTC conferencing.
Installation
npm install quickrtc-serverQuick Start
import express from "express";
import { createServer } from "https";
import { readFileSync } from "fs";
import { Server as SocketIOServer } from "socket.io";
import { QuickRTCServer } from "quickrtc-server";
const app = express();
const httpsServer = createServer({
key: readFileSync("key.pem"),
cert: readFileSync("cert.pem"),
}, app);
const socketServer = new SocketIOServer(httpsServer, {
cors: { origin: "*" },
});
const mediaServer = new QuickRTCServer({
httpServer: httpsServer,
socketServer,
});
await mediaServer.start();
httpsServer.listen(3000);Configuration
const server = new QuickRTCServer({
httpServer: httpsServer,
socketServer: socketIOServer,
// MediaSoup config (optional - sensible defaults provided)
quickrtcConfig: {
// Required for production: set your public IP
webRtcServerOptions: {
listenInfos: [{
ip: "0.0.0.0",
announcedIp: process.env.PUBLIC_IP,
}],
},
// Optional: customize ports
workerSettings: {
rtcMinPort: 40000,
rtcMaxPort: 49999,
},
},
});API
// Lifecycle
await server.start();
await server.stop();
// Conferences
server.getConferences(); // List all
server.getConference(conferenceId); // Get one
await server.closeConference(conferenceId); // Close
// Participants
server.getParticipants(); // List all
server.getParticipant(participantId); // Get one
await server.kickParticipant(participantId); // Remove
// Messaging
server.broadcastToConference(conferenceId, "event", data);
server.sendToParticipant(participantId, "event", data);
// Stats
server.getStats(); // { uptime, conferenceCount, participantCount }Events
server.on("conferenceCreated", (e) => console.log(e.detail.conference.id));
server.on("conferenceDestroyed", (e) => console.log(e.detail.conferenceId));
server.on("participantJoined", (e) => console.log(e.detail.participant.name));
server.on("participantLeft", (e) => console.log(e.detail.participant.name));Production Requirements
- HTTPS - WebRTC requires secure context
- Public IP - Set
announcedIpto your server's public IP - Firewall - Open port 443 (TCP) and 40000-49999 (UDP)
License
MIT