raqmeyat/webrtc
Laravel WebRTC toolkit for adding peer-to-peer audio, video, and data channels to your app, with signaling, configurable STUN/TURN, and simple helpers to get real-time connections running fast.
At v0.1.0 with only a changelog entry published, this is a greenfield package — treat the README and the src/ tree as the source of truth, since release notes carry no migration or feature detail.
composer require loai-k/laravel-webrtc (confirm the exact vendor string from Packagist before installing; the repo slug and package name may differ).php artisan vendor:publish --tag=webrtc-config (check src/*ServiceProvider.php for the actual tag).RTCPeerConnection. Get one offer/answer round-trip working before touching multi-peer or auth.Because there is no tagged documentation yet, pin to v0.1.0 exactly ("loai-k/laravel-webrtc": "0.1.0") and expect to read source rather than docs.
BROADCAST_DRIVER first and verify a plain broadcast(new TestEvent(...)) works before wiring offer/answer/ICE payloads through the package.config/webrtc.php (or config/broadcasting.php) sourced from .env — never hard-code TURN secrets into the JS bundle. Rotate TURN credentials via a short-lived-token controller if the package exposes it.PeerConnected / SignalReceived-style events, hook listeners in EventServiceProvider (or auto-discovery) rather than calling package classes from controllers. This keeps you decoupled from a v0.x API that will move.app/Services/WebRtc.php that delegates to the package façade. When v0.2.0 renames a method, you patch one file instead of every controller.Event::fake() to assert signaling events fire without a real socket. For end-to-end, script two RTCPeerConnection instances in a Pest/Dusk test hitting a local TURN (coturn in Docker).^0.1 allows 0.1.x patches but a 0.2.0 bump is a breaking change by convention. Pin tightly, and consider "0.1.*" rather than ^0.1.getUserMedia and many peer operations are blocked on plain HTTP except localhost. If signaling "works" locally but not on staging, check your TLS and the secure cookie/session config first.turns: (TLS) on port 5349; turn: on 3478 often fails behind corporate firewalls. Provide both in ICE servers.VerifyCsrfToken::$except for API-style calls, or use Sanctum token auth.LOG_CHANNEL=stack, BROADCAST_CONNECTION), and in the browser use chrome://webrtc-internals to inspect ICE candidate gathering and DTLS handshake failures — that view is far more informative than the package's own logs.vendor/.Given the sparse release notes and 0.1.0 status, re-evaluate this assessment on the next tagged release — expect API and config churn.
How can I help you explore Laravel packages today?