Realtime · Socket.IO

Calls (signaling)

Not a full WebRTC stack — events coordinate UI. See Client emits for call:accept / reject / end.

javascript
socket.emit("call:initiate", {
  chatId: "64c3...",
  type: "video",
  participants: ["userId1", "userId2"],
})
socket.emit("call:initiate", {
  chatId: "64c3...",
  type: "video",
  participants: ["userId1", "userId2"],
})

Callee receives call:incoming

json
{
  "chatId": "64c3d4e5f678901234567890",
  "callerId": "69566c4cf0bdc3ae3e81b108",
  "type": "video",
  "timestamp": "2026-03-18T10:00:00.000Z"
}
{
  "chatId": "64c3d4e5f678901234567890",
  "callerId": "69566c4cf0bdc3ae3e81b108",
  "type": "video",
  "timestamp": "2026-03-18T10:00:00.000Z"
}