- Client-Side (Browser)
Implement an on-screen virtual joypad and buttons overlay on the screen mirroring web UI.
Detect touch/click events on these virtual buttons and joysticks.
Transmit the controller state changes over the existing WebSocket connection (or WebRTC data channel) to the server.
- Server-Side (Host)
Receive the controller state payloads from the client.
Use FFI (Foreign Function Interface) bindings to interact with OS-level virtual input device APIs.
Reference: https://github.com/pthsarmah/streamer
Implement an on-screen virtual joypad and buttons overlay on the screen mirroring web UI.
Detect touch/click events on these virtual buttons and joysticks.
Transmit the controller state changes over the existing WebSocket connection (or WebRTC data channel) to the server.
Receive the controller state payloads from the client.
Use FFI (Foreign Function Interface) bindings to interact with OS-level virtual input device APIs.
Reference: https://github.com/pthsarmah/streamer