Guidelines
Integration & Security Guidelines
Introduction
This guide outlines recommended security, privacy, and integration guidelines when building applications with the Arcware Pixel Streaming WebSDK.
Modern browsers enforce strict policies around:
device permissions
autoplay restrictions
fullscreen access
WebRTC security
cross-origin communication
Following these guidelines helps ensure that your application:
behaves consistently across browsers
respects user privacy
complies with browser security models
provides a trustworthy user experience
These recommendations apply to both UI integrations (ArcwareInit) and headless integrations (CoreSetup).
User Permissions and Device Access
Request Microphone Access Explicitly
Access to user devices such as microphones must always be explicitly triggered by a user interaction.
Browsers will block microphone access if it is requested automatically during page load or connection initialization.
Recommended pattern:
This ensures the permission request originates from a clear user action.
Provide Clear Device Usage Indicators
Whenever the microphone is active, the application should visibly indicate this state to the user.
Examples:
a microphone icon
a recording indicator
a toggle switch that reflects the current state
Providing clear indicators helps users understand when their device is in use and reinforces trust in the application.
Autoplay and Audio Policies
Modern browsers restrict autoplay of media that contains sound.
Because Pixel Streaming uses a video element internally, applications should consider the following:
initialize streams with
StartVideoMuted: trueallow users to manually enable audio
provide an audio toggle button
Example configuration:
Once the user interacts with the page, audio can safely be enabled.
Fullscreen Functionality
Only Trigger Fullscreen via User Interaction
Browsers only allow fullscreen mode to be entered when triggered by a direct user action, such as clicking a button.
Example implementation:
Attempting to enter fullscreen automatically during page load will typically be blocked.
Allow Users to Exit Fullscreen Easily
Always provide users with a clear and simple way to exit fullscreen mode.
Typical options include:
a fullscreen toggle button
visible UI controls when hovering the stream
keyboard shortcuts such as
Esc
This helps prevent confusion and ensures users remain in control of their browser environment.
Avoid Embedding Streams via Iframes
Embedding Pixel Streaming sessions through an <iframe> is strongly discouraged.
Although some iframe configurations may work, modern browsers apply additional restrictions to iframe content that can negatively affect streaming functionality.
Common Issues with Iframe Embedding
Security Restrictions
Iframe environments often enforce stricter security policies that can limit:
WebRTC functionality
device permission access
fullscreen behavior
clipboard and input handling
Cross-Origin Limitations
If the iframe content originates from a different domain, browser same-origin policies can prevent communication between the host application and the embedded content.
This may affect:
interaction messaging
session handling
custom UI integrations
Reduced Performance and Responsiveness
Iframe-based integrations may introduce:
layout inconsistencies
mobile responsiveness issues
slower page loading
more complex input handling
Recommended Integration Approach
Instead of embedding a stream via iframe, integrate the stream directly using the WebSDK.
Example:
Direct DOM integration provides:
full control over the video element
better input handling
consistent browser behavior
improved performance
Provide Clear Connection Feedback
Users should be informed about the current connection state of the stream.
Typical states to communicate include:
connecting to stream
waiting in queue
stream starting
stream ready
connection lost
These states can be implemented using SDK event handlers such as:
loveLetterHandlerqueueHandlervideoInitializedHandlerwebsocketOnCloseHandler
Providing feedback during connection phases improves user understanding and reduces confusion.
Handle Queue Scenarios Gracefully
When streaming capacity is fully utilized, users may be placed in a queue.
Applications should provide clear feedback such as:
current position in queue
estimated wait time
confirmation that the system is working
Queue events are exposed through:
Handling queue events properly is important for maintaining a good user experience during peak usage.
Implement AFK Awareness
Streaming resources are limited, and sessions may be terminated when users remain inactive.
Applications should listen for AFK events and inform users before a timeout occurs.
Relevant events include:
afkWarningActivateafkWarningUpdateafkWarningDeactivateafkTimedOut
Providing visual warnings allows users to remain active and prevents unexpected session termination.
Avoid Creating Multiple SDK Instances
In frameworks such as React or Vue, repeated component renders may accidentally trigger multiple SDK initializations.
To prevent this:
use
ArcwareInit()instead of manual initializationavoid creating SDK instances inside frequently re-rendered components
reuse the returned SDK objects where possible
If a fresh initialization is intentionally required, use:
Protect Against Unexpected Session Reuse
The SDK may reuse previously stored session IDs to reconnect to a stream.
If your application requires a clean new session, explicitly disable session reuse.
Options include:
using the
?noSessionURL parametercalling
ArcwarePixelStreaming.clearSessionId()initializing the SDK with
forceRefresh: true
This is particularly useful for:
testing environments
multi-user systems
applications where session persistence should be avoided
Keep Dependencies Updated
The WebSDK evolves alongside the Pixel Streaming infrastructure and browser technologies.
To maintain compatibility:
keep the WebSDK version updated
pin production deployments to a specific version
test integrations when upgrading major versions
Example installation:
For production environments, it is recommended to pin exact versions instead of using latest.
Stay Informed About Browser Changes
Browser vendors regularly update policies affecting:
autoplay behavior
device permissions
WebRTC capabilities
security restrictions
Developers should periodically review browser documentation to ensure their integrations remain compliant.
Useful resources:
Summary
Following these guidelines helps ensure that WebSDK integrations are:
secure
privacy-aware
compatible across browsers
resilient to infrastructure changes
A well-designed integration should always prioritize:
user control
transparent device access
clear connection feedback
secure integration patterns.
Last updated