# udaybhaskarsingipurapu/meetsphere architecture

> Architecture diagram of the GitHub repository udaybhaskarsingipurapu/meetsphere, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/udaybhaskarsingipurapu/meetsphere
- Repository: https://github.com/udaybhaskarsingipurapu/meetsphere

## Overview

This is a small WebSocket signalling server for room-based chat and WebRTC peer signalling. Clients join a room, then the server relays chat, offers, answers, and ICE candidates to other connected room members; disconnects trigger peer-left notifications and membership cleanup. It also exposes an HTTP health endpoint. The runtime is implemented in one file, so the components below are conceptual responsibilities within that file; no README or client implementation was provided.

Main entry points: [`Signalling-Server/server.ts`](https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts) (WebSocket handler)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_signalling["Signalling server"]
  node_ws_handler["WebSocket handler<br/>[server.ts]"]
  node_room_state[("Room membership<br/>[server.ts]")]
  node_chat_relay["Chat relay<br/>[server.ts]"]
  node_rtc_relay["WebRTC relay<br/>[server.ts]"]
  node_disconnect["Disconnect cleanup<br/>[server.ts]"]
  node_health["Health endpoint<br/>[server.ts]"]
end

node_client(("Room clients"))
node_http_client(("Health requester"))

node_client -->|"connects and sends"| node_ws_handler
node_ws_handler -->|"updates membership"| node_room_state
node_ws_handler -->|"dispatches chat"| node_chat_relay
node_chat_relay -->|"reads members"| node_room_state
node_chat_relay -->|"relays chat"| node_client
node_ws_handler -->|"dispatches signalling"| node_rtc_relay
node_rtc_relay -->|"reads members"| node_room_state
node_rtc_relay -->|"relays signalling"| node_client
node_ws_handler -->|"handles close"| node_disconnect
node_disconnect -->|"cleans membership"| node_room_state
node_disconnect -->|"notifies peer left"| node_client
node_http_client -->|"requests health"| node_health

click node_ws_handler "https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts"
click node_room_state "https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts"
click node_chat_relay "https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts"
click node_rtc_relay "https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts"
click node_disconnect "https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts"
click node_health "https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_ws_handler,node_room_state,node_chat_relay,node_rtc_relay,node_disconnect,node_health,node_client toneBlue
class node_http_client toneMint
```

## Components

### Signalling server

- [WebSocket handler](https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts): `Signalling-Server/server.ts`
- [Room membership](https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts): `Signalling-Server/server.ts`
- [Chat relay](https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts): `Signalling-Server/server.ts`
- [WebRTC relay](https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts): `Signalling-Server/server.ts`
- [Disconnect cleanup](https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts): `Signalling-Server/server.ts`
- [Health endpoint](https://github.com/udaybhaskarsingipurapu/meetsphere/blob/main/Signalling-Server/server.ts): `Signalling-Server/server.ts`

### Other components

- **Room clients**
- **Health requester**

## Connections

- Room clients → WebSocket handler: connects and sends
- WebSocket handler → Room membership: updates membership
- WebSocket handler → Chat relay: dispatches chat
- Chat relay → Room membership: reads members
- Chat relay → Room clients: relays chat
- WebSocket handler → WebRTC relay: dispatches signalling
- WebRTC relay → Room membership: reads members
- WebRTC relay → Room clients: relays signalling
- WebSocket handler → Disconnect cleanup: handles close
- Disconnect cleanup → Room membership: cleans membership
- Disconnect cleanup → Room clients: notifies peer left
- Health requester → Health endpoint: requests health
