Overview
Web Access features:- Browser-based control (no app required)
- Virtual Console remote access
- Simple Desk web interface
- WebSocket real-time updates
- Multi-user support
- Authentication and security
- Responsive mobile-friendly design
Architecture
HTTP Server
Web Access runs an embedded HTTP server:doc: Reference to the QLC+ documentvcInstance: Virtual Console instance for widget renderingsdInstance: Simple Desk instance for direct DMX controlportNumber: TCP port for the web server (default: 9999)enableAuth: Enable password authenticationpasswdFile: Path to password file
WebSocket Communication
Real-time updates use WebSocket protocol:- Bi-directional communication
- Low latency updates
- Efficient data transfer
- Persistent connections
WebSocket connections remain open, allowing the server to push updates to the browser instantly when fixture values or widget states change.
Virtual Console Access
Widget Rendering
Virtual Console widgets are rendered as HTML:- Buttons: Start/stop functions
- Sliders: Value control
- Frames: Widget containers
- Solo Frames: Page-based containers
- Cue Lists: Step-through sequences
- Labels: Text display
- Audio Triggers: Audio-reactive controls
- Clocks: Time display
- Matrices: RGB matrix control
Complete Virtual Console
- Start with root frame
- Render each child widget
- Handle nested frames
- Apply styling and layout
Simple Desk Web Interface
Web-based Simple Desk
- Channel sliders (32 per page)
- Universe selection
- Page navigation
- Value display
- Reset controls
Integration with Simple Desk
The web interface communicates with the Simple Desk backend:The web Simple Desk displays 32 channels per page. Use page navigation to access all 512 channels of the universe.
Real-time Updates
Widget State Changes
Widget state changes are pushed to connected browsers:Function Status
- Button colors (active/inactive)
- Cue list position
- Status indicators
Grand Master
Authentication
Password Protection
When authentication is enabled:- Browser requests a page
- Server checks for valid session
- If no session, redirect to login
- On successful login, create session cookie
- Grant access to protected resources
Password File Format
The password file is a simple text file:For production use, consider using HTTPS and strong passwords. The embedded server supports basic authentication but not encryption by default.
Resource Files
JavaScript and CSS
- JavaScript: Client-side logic and WebSocket handling
- CSS: Responsive styling for mobile and desktop
- HTML: Widget rendering templates
Static Resources
Static files served:webaccess-v5.html: Main HTML pagewebaccess-v5.js: JavaScript codewebaccess-v5.css: Stylesheetsimpledesk-v5.js: Simple Desk JavaScriptsimpledesk-v5.css: Simple Desk stylesheet
Project Management
Remote Project Load
- Load projects remotely
- Upload workspace files
- Store fixture definitions
- Manage autostart projects
Signals for Document Control
Remote project management allows you to configure QLC+ headless installations without physical access to the machine.
Multi-User Support
Concurrent Connections
Web Access supports multiple simultaneous connections:- Each browser gets its own WebSocket connection
- State changes are broadcast to all connected clients
- Users see the same Virtual Console state
- Changes from one user are visible to others
Connection Tracking
- Active WebSocket connections
- Client IP addresses
- Connection timestamps
- Session states
Mobile Optimization
Responsive Design
The web interface adapts to screen size:- Touch-friendly buttons (larger hit areas)
- Swipe gestures for sliders
- Responsive layout for phones/tablets
- Portrait and landscape support
Performance Considerations
- Efficient WebSocket messages (minimal data)
- Throttled updates (prevent flooding)
- Client-side rendering (reduce server load)
- Compressed assets
Configuration
Server Settings
- Port Number: Default 9999, configurable in settings
- Authentication: Enable/disable password protection
- Password File: Path to credentials file
- Auto-start: Launch Web Access with QLC+
Network Configuration
For remote access:- Ensure port is open in firewall
- Configure port forwarding if needed
- Use static IP or DNS name
- Consider VPN for security
Test Connection
Open browser to http://localhost:9999
Best Practices
- Security: Always use authentication on public networks
- Network: Use reliable WiFi or wired connection
- Browsers: Modern browsers work best (Chrome, Firefox, Safari)
- Testing: Test thoroughly before live events
- Backup Control: Keep traditional interface available as backup
- Documentation: Document IP address and port for operators
- Updates: Keep QLC+ updated for latest web features
Troubleshooting
Connection Issues
Can’t connect: Check firewall, port, and IP address Slow updates: Verify network quality, reduce number of widgets WebSocket errors: Check browser console, try different browserPerformance Issues
Laggy interface: Reduce update rate, simplify Virtual Console High CPU: Limit active widgets, reduce WebSocket clients Memory usage: Restart Web Access periodically for long-running showsTechnical Notes
WebSocket Protocol
Messages are JSON-formatted:HTTP Endpoints
GET /: Main interface pageGET /vc: Virtual Console viewGET /simpledesk: Simple Desk viewPOST /loadProject: Upload projectGET /ws: WebSocket upgrade endpoint
Browser Compatibility
- Chrome/Edge: Full support
- Firefox: Full support
- Safari: Full support (iOS 11+)
- Internet Explorer: Not supported
