# puskal-khadka/websocket-kotlin-demo architecture

> Architecture diagram of the GitHub repository puskal-khadka/websocket-kotlin-demo, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-10-01). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/puskal-khadka/websocket-kotlin-demo
- Repository: https://github.com/puskal-khadka/websocket-kotlin-demo

## Overview

This is a small Android demo for connecting to a WebSocket echo server, sending text, and displaying replies. The user starts a connection in the activity; SocketUtils creates the OkHttp WebSocket, and the activity sends messages on the returned connection. Incoming text is passed to the activity callback for display. The graph covers the sampled runtime code and the README-described echo-server role; it does not infer behavior for unsampled resources.

Main entry points: [`app/src/main/java/com/puskal/websocketdemo/MainActivity.kt`](https://github.com/puskal-khadka/websocket-kotlin-demo/blob/main/app/src/main/java/com/puskal/websocketdemo/MainActivity.kt) (Main activity), [`app/src/main/java/com/puskal/websocketdemo/SocketUtils.kt`](https://github.com/puskal-khadka/websocket-kotlin-demo/blob/main/app/src/main/java/com/puskal/websocketdemo/SocketUtils.kt) (Socket utilities)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["Android interface"]
  node_activity["Main activity<br/>[MainActivity.kt]"]
end

subgraph group_socket["WebSocket communication"]
  node_socket_utils["Socket utilities<br/>[SocketUtils.kt]"]
  node_okhttp["OkHttp WebSocket"]
end

node_user(("User"))
node_echo_server["Echo server"]

node_user -->|"uses interface"| node_activity
node_activity -->|"opens connection"| node_socket_utils
node_socket_utils -->|"creates socket"| node_okhttp
node_activity -->|"sends text"| node_okhttp
node_okhttp -->|"exchanges messages"| node_echo_server
node_socket_utils -->|"delivers replies"| node_activity
node_activity -->|"shows replies"| node_user

click node_activity "https://github.com/puskal-khadka/websocket-kotlin-demo/blob/main/app/src/main/java/com/puskal/websocketdemo/MainActivity.kt"
click node_socket_utils "https://github.com/puskal-khadka/websocket-kotlin-demo/blob/main/app/src/main/java/com/puskal/websocketdemo/SocketUtils.kt"

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_activity,node_user toneBlue
class node_socket_utils,node_okhttp toneAmber
class node_echo_server toneMint
```

## Components

### Android interface

- [Main activity](https://github.com/puskal-khadka/websocket-kotlin-demo/blob/main/app/src/main/java/com/puskal/websocketdemo/MainActivity.kt): `app/src/main/java/com/puskal/websocketdemo/MainActivity.kt`

### WebSocket communication

- [Socket utilities](https://github.com/puskal-khadka/websocket-kotlin-demo/blob/main/app/src/main/java/com/puskal/websocketdemo/SocketUtils.kt): `app/src/main/java/com/puskal/websocketdemo/SocketUtils.kt`
- **OkHttp WebSocket**

### Other components

- **User**
- **Echo server**

## Connections

- User → Main activity: uses interface (evidence: `app/src/main/java/com/puskal/websocketdemo/MainActivity.kt`)
- Main activity → Socket utilities: opens connection (evidence: `app/src/main/java/com/puskal/websocketdemo/MainActivity.kt`)
- Socket utilities → OkHttp WebSocket: creates socket (evidence: `app/src/main/java/com/puskal/websocketdemo/SocketUtils.kt`)
- Main activity → OkHttp WebSocket: sends text (evidence: `app/src/main/java/com/puskal/websocketdemo/MainActivity.kt`)
- OkHttp WebSocket → Echo server: exchanges messages (evidence: `README.md`)
- Socket utilities → Main activity: delivers replies (evidence: `app/src/main/java/com/puskal/websocketdemo/SocketUtils.kt`)
- Main activity → User: shows replies (evidence: `app/src/main/java/com/puskal/websocketdemo/MainActivity.kt`)
