From 7017aef56b865f4ad45ef8d43b7dc99b4deb2c28 Mon Sep 17 00:00:00 2001 From: Bill Church Date: Sun, 18 Aug 2024 13:03:08 +0000 Subject: [PATCH] docs: event flow diagram --- EventFlow.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 EventFlow.md diff --git a/EventFlow.md b/EventFlow.md new file mode 100644 index 0000000..7680b1f --- /dev/null +++ b/EventFlow.md @@ -0,0 +1,33 @@ + +# Typical Event Flow +```mermaid +sequenceDiagram + participant Client + participant Socket.IO + participant WebSSH2 Server + participant SSH Server + + Client->>Socket.IO: Connect + Socket.IO->>WebSSH2 Server: io.on connection + Note over WebSSH2 Server: Socket Established + WebSSH2 Server->>Client: Emit request_auth + Client->>WebSSH2 Server: Send authentication data + Note over WebSSH2 Server: handleAuthenticate + Note over WebSSH2 Server: initializeConnection + WebSSH2 Server->>SSH Server: Connect (ssh.connect) + SSH Server-->>WebSSH2 Server: Connection ready + Note over WebSSH2 Server: conn.on ready + WebSSH2 Server->>Client: Emit authentication success + WebSSH2 Server->>Client: Emit permissions + WebSSH2 Server->>Client: Update footer element + Client->>WebSSH2 Server: Send terminal data + Note over WebSSH2 Server: handleTerminal + Note over WebSSH2 Server: Set term, rows, cols + Note over WebSSH2 Server: Ready for SSH communication + Note over WebSSH2 Server: createShell + WebSSH2 Server->>SSH Server: open shell + SSH Server-->>WebSSH2 Server: stream.on('data') + WebSSH2 Server-->>Client: socket.emit('data') + Client-->>WebSSH2 Server: socket.on('data') + WebSSH2 Server-->>SSH Server: stream.write('data') +``` \ No newline at end of file