How dyhwdnmd/rlink-remotectrl works
RLink is a Windows remote-desktop and collaboration product: users sign in or choose a device/room, establish signaling and peer sessions, then view/control screens or use room media and data features. The client also manages devices, recent connections, diagnostics, settings, and updates; a separately deployable signaling server coordinates authentication, rooms, and direct-session setup. README claims supply the major capabilities; sampled source confirms session-engine responsibilities, WebRTC data channels, authentication, and update checking, but does not expose every UI-to-runtime call site.
Main entry points: InProcessSessionEngine.cpp Session engine · ControllerMainWindow.cpp Client shell · SignalServer.cpp Signal server · AuthManager.cpp Authentication
Components 24
Desktop client
- Client shell
src/apps/controller/ControllerMainWindow.cpp - Device and room pages
src/apps/controller/pages - Remote session UI
src/apps/controller/RemoteSessionWindow.h - Diagnostics UI
src/apps/controller/pages/DiagnosticsPage.cpp
Session runtime
- Session engine
src/apps/remote/InProcessSessionEngine.cpp - Room coordinator
src/apps/remote/RoomSessionCoordinator.cpp - Direct coordinator
src/apps/remote/DirectSessionCoordinator.cpp - Signaling client
src/signaling/QtWebSocketSignalingClient.cpp - Peer sessions
src/webrtc/LibWebRtcSession.cpp - Data channels
src/webrtc/DataChannelManager.cpp - Windows capture
src/platform/win/WindowsDesktopCaptureSource.cpp - Input execution
src/platform/win/WindowsInputExecutor.cpp - File transfer
src/apps/remote/FileTransferController.cpp - Remote clipboard
src/apps/remote/ClipboardController.cpp
Signaling service
- Signal server
src/server/signaling/SignalServer.cpp - Room registry
src/server/signaling/RoomRegistry.cpp - Direct-session registry
src/server/signaling/DirectSessionRegistry.cpp - Identity store
src/server/persistence/IdentityStore.cpp
Identity and updates
- Update controller
src/apps/update/SoftwareUpdateController.cpp - Authentication
src/auth/AuthManager.cpp
Other components
- User
- Logto identity
- Update manifests
- Remote peers
Connections 27
- User → Client shell: uses
- Client shell → Device and room pages: shows
- Client shell → Authentication: authenticates
- Client shell → Session engine: commands
- Device and room pages → Session engine: requests sessions
- Remote session UI → Session engine: controls session
- Diagnostics UI → Session engine: reads status
- Client shell → Update controller: checks updates
- Update controller → Update manifests: fetches
- Authentication → Logto identity: uses OIDC
- Authentication → Identity store: stores tokens
- Session engine → Direct coordinator: coordinates direct
- Session engine → Room coordinator: coordinates rooms
- Session engine → Signaling client: signals
- Signaling client → Signal server: exchanges messages
- Signal server → Room registry: manages membership
- Signal server → Direct-session registry: tracks sessions
- Signal server → Identity store: reads identities
- Session engine → Peer sessions: creates peer sessions
- Peer sessions → Remote peers: connects P2P
- Session engine → Windows capture: captures desktop
- Session engine → Input execution: executes remote input
- Session engine → Data channels: sends data
- Session engine → File transfer: manages transfers
- Session engine → Remote clipboard: manages clipboard
- File transfer → Remote peers: transfers P2P
- Remote clipboard → Remote peers: sends clipboard data