Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Laravel Video Chat

Laravel Video Chat Laravel Package

php-junior/laravel-video-chat

Laravel Video Chat adds one-to-one WebRTC video calling to Laravel apps. It handles signaling through Laravel events and Echo, includes ready-made Vue call components, and lets you add real-time peer-to-peer video chat without building the WebRTC plumbing yourself.

View on GitHub
Deep Wiki
Context7

php-junior/laravel-video-chat is a ready-to-use video chat solution for Laravel applications. It pairs a simple Blade component with WebRTC signaling and Laravel Echo broadcasting, letting you spin up one-to-one or group video calls without writing signaling logic or building a custom UI from scratch.

  • Drop-in UI — publish the provided Vue/Blade views and get a working call interface instantly
  • WebRTC peer-to-peer media streams with configurable STUN/TURN servers
  • Echo-powered signaling over public, private, or presence channels for multi-user rooms
  • Laravel-native — service provider, config file, migrations, and events included
  • Customizable — swap views, extend events, and control room access with your own auth logic
Frequently asked questions about Laravel Video Chat
How do I install php-junior/laravel-video-chat in a Laravel application?
Install it with composer require php-junior/laravel-video-chat, then publish the package config and front-end assets and run the bundled Node.js Socket.IO signaling server. Because the last release was December 2017, the Composer constraints will probably conflict with a current Laravel or PHP 8 install, so most teams vendor or fork the code instead of pulling it as a dependency. You also need to configure the Socket.IO endpoint URL and TLS in your environment file.
Does laravel-video-chat support Laravel 10, Laravel 11, or PHP 8.2?
Not out of the box. The package's final release dates from December 2017, which predates modern Laravel versions and PHP 8, so expect Composer dependency conflicts and outdated framework API calls. You would need to fork it, relax the version constraints, and update the service provider and config for current Laravel before it will install and boot. Browser-side WebRTC support is not the problem; framework and build-tool compatibility is.
Do I need a Node.js server to use this package?
Yes. The Laravel package is a wrapper around a separate Socket.IO signaling server that runs on Node.js, plus browser-native WebRTC peer connections. Adopting it means operating a second runtime alongside your PHP application, including process management, environment configuration, CORS and origin handling, and TLS termination for WebSocket traffic. It is not a self-contained Laravel feature.
How does laravel-video-chat handle NAT traversal and TURN servers?
It relies on WebRTC's built-in ICE with STUN, and it does not ship a production-grade TURN service. Calls between users behind symmetric NATs or restrictive corporate firewalls will fail without a TURN server such as coturn. Plan to add TURN configuration and fallback handling before any production pilot.
Can laravel-video-chat handle group video calls or large rooms?
No. The package credibly covers one-to-one calls and small peer-to-peer rooms only. Group calling at scale, recording, moderation, and media processing require an SFU-based platform and significant additional infrastructure. For those requirements, treat this package as an accelerator or reference implementation at best.
Is laravel-video-chat still maintained and safe to use in production?
It has had no releases since December 2017, no active maintainer signal, and effectively no ecosystem dependents, so security patches and compatibility fixes will not arrive upstream. Signaling is also a single point of failure: if the Socket.IO process is down or misconfigured, calls cannot be established even when Laravel is healthy. Treat the repository as a fork source and own the code, dependencies, and operations yourself.
How does authentication and authorization work for video calls in this package?
Authentication in the package is minimal and example-grade, so you must wire in Laravel's guards, call permissions, room membership checks, and rate limiting yourself. You should also decide how signaling tokens are issued and validated, and how tenancy and data-retention rules apply to call metadata. Do not assume the bundled flow meets production security requirements.
What are good alternatives to laravel-video-chat for video calling in Laravel?
If you already run Laravel Reverb or a managed WebSocket provider like Pusher Channels, use that as your signaling layer and reuse only the WebRTC client patterns from this package. For full-featured calls, managed platforms such as LiveKit, Twilio Video, Agora, or Daily handle SFU, TURN, and recording for you. Alternatively, fork this code and replace the 2017 Socket.IO signaling with Reverb while preserving the offer, answer, ICE candidate, and room join/leave message contract.
Can I use laravel-video-chat with Laravel Echo, Reverb, or Pusher?
Not directly. The package is built around a Socket.IO signaling server, whereas Laravel Echo, Reverb, and Pusher use a different protocol and client. You can port the signaling message contract onto Reverb or Pusher and keep the WebRTC call flow, but the bundled JavaScript and server code will need rewriting. Socket.IO client and server versions must also match exactly, since mismatches cause silent connection failures.
How do I test and deploy the Socket.IO signaling server for a Laravel video chat?
Run the Node signaling process under a supervisor such as systemd or Supervisor, terminate TLS in front of the WebSocket traffic, and configure allowed origins and CORS explicitly. Add health checks and alerting because signaling downtime blocks all call setup even if the Laravel app responds normally. For testing, exercise the offer, answer, and ICE candidate handshake plus failure paths like TURN unavailability, and modernize the front end for Vite since the bundled JavaScript assumes older build tooling.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
novasa/laravel-language-center
opencage/geocode
adolfoholzer/parameters
livenetworks/ln-starter
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox
pairus/product-data
fayne/laravel-filament-cms-core