PHPackages                             baklysystems/laravel-video-chat - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. baklysystems/laravel-video-chat

ActiveLibrary

baklysystems/laravel-video-chat
===============================

v1.1.6(6y ago)08MITPHPPHP &gt;=7.0

Since Oct 22Pushed 6y agoCompare

[ Source](https://github.com/baklysystems/laravel-video-chat)[ Packagist](https://packagist.org/packages/baklysystems/laravel-video-chat)[ RSS](/packages/baklysystems-laravel-video-chat/feed)WikiDiscussions master Synced yesterday

READMEChangelog (1)Dependencies (7)Versions (8)Used By (0)

Laravel Video Chat
==================

[](#laravel-video-chat)

Laravel Video Chat using Socket.IO and WebRTC

[![Build Status](https://camo.githubusercontent.com/5b145c9c99af6cb763652269d1c865cdfcec826bcf2a4a168864abd354fd8996/68747470733a2f2f7472617669732d63692e6f72672f5048504a756e696f722f6c61726176656c2d766964656f2d636861742e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/PHPJunior/laravel-video-chat)[![StyleCI](https://camo.githubusercontent.com/4081c9b713d21a210fb982da4b9618a09a21bc310f6cf44bda3633b7e1879b1b/68747470733a2f2f7374796c6563692e696f2f7265706f732f3130373831323130332f736869656c643f6272616e63683d6d6173746572)](https://styleci.io/repos/107812103)[![Latest Stable Version](https://camo.githubusercontent.com/67296194dfc3b466d5d8e140a21c5d8dd1eb83a80df795dd982dd44ff09d835f/68747470733a2f2f706f7365722e707567782e6f72672f7068702d6a756e696f722f6c61726176656c2d766964656f2d636861742f762f737461626c65)](https://packagist.org/packages/php-junior/laravel-video-chat)[![Total Downloads](https://camo.githubusercontent.com/278ec0dade92c099c1a5b23f41857d4fc7853bcc42743be9e546665899904db2/68747470733a2f2f706f7365722e707567782e6f72672f7068702d6a756e696f722f6c61726176656c2d766964656f2d636861742f646f776e6c6f616473)](https://packagist.org/packages/php-junior/laravel-video-chat)

Installation
------------

[](#installation)

```
composer require php-junior/laravel-video-chat
```

Laravel 5.5 uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.

If you don't use auto-discovery, add the ServiceProvider to the providers array in config/app.php

```
PhpJunior\LaravelVideoChat\LaravelVideoChatServiceProvider::class,
```

```
php artisan vendor:publish --provider="PhpJunior\LaravelVideoChat\LaravelVideoChatServiceProvider"
```

And

```
php artisan migrate
php artisan storage:link

change APP_URL in .env
```

This is the contents of the published config file:

```
return [
    'relation'  => [
        'conversations' =>  PhpJunior\LaravelVideoChat\Models\Conversation\Conversation::class,
        'group_conversations' => PhpJunior\LaravelVideoChat\Models\Group\Conversation\GroupConversation::class
    ],
    'user' => [
        'model' =>  App\User::class,
        'table' =>  'users' // Existing user table name
    ],
    'table' => [
        'conversations_table'   =>  'conversations',
        'messages_table'        =>  'messages',
        'group_conversations_table' =>  'group_conversations',
        'group_users_table'     =>  'group_users',
        'files_table'           =>  'files'
    ],
    'channel'   =>  [
        'new_conversation_created'  =>  'new-conversation-created',
        'chat_room'                 =>  'chat-room',
        'group_chat_room'           =>  'group-chat-room'
    ],
    'upload' => [
        'storage' => 'public'
    ]
];
```

Uncomment `App\Providers\BroadcastServiceProvider` in the providers array of your `config/app.php` configuration file

Install the JavaScript dependencies:

```
    npm install
    npm install --save laravel-echo js-cookie vue-timeago socket.io socket.io-client webrtc-adapter vue-chat-scroll
```

If you are running the Socket.IO server on the same domain as your web application, you may access the client library like

```

```

in your application's `head` HTML element

Next, you will need to instantiate Echo with the `socket.io` connector and a `host`.

```
 require('webrtc-adapter');
 window.Cookies = require('js-cookie');

 import Echo from "laravel-echo"

 window.io = require('socket.io-client');

 window.Echo = new Echo({
     broadcaster: 'socket.io',
     host: window.location.hostname + ':6001'
 });

```

Finally, you will need to run a compatible Socket.IO server. Use [tlaverdure/laravel-echo-server](https://github.com/tlaverdure/laravel-echo-server) GitHub repository.

In `resources/assets/js/app.js` file:

```
 import VueChatScroll from 'vue-chat-scroll';
 import VueTimeago from 'vue-timeago';

 Vue.use(VueChatScroll);
 Vue.component('chat-room' , require('./components/laravel-video-chat/ChatRoom.vue'));
 Vue.component('group-chat-room', require('./components/laravel-video-chat/GroupChatRoom.vue'));
 Vue.component('video-section' , require('./components/laravel-video-chat/VideoSection.vue'));
 Vue.component('file-preview' , require('./components/laravel-video-chat/FilePreview.vue'));

 Vue.use(VueTimeago, {
     name: 'timeago', // component name, `timeago` by default
     locale: 'en-US',
     locales: {
         'en-US': require('vue-timeago/locales/en-US.json')
     }
 })

```

Run `npm run dev` to recompile your assets.

Features
--------

[](#features)

- One To One Chat ( With Video Call )
- Accept Message Request
- Group Chat
- File Sharing

Usage
-----

[](#usage)

#### Get All Conversation and Group Conversation

[](#get-all-conversation-and-group-conversation)

```
$groups = Chat::getAllGroupConversations();
$conversations = Chat::getAllConversations()
```

```

    @foreach($conversations as $conversation)

        @if($conversation->message->conversation->is_accepted)

                {{$conversation->user->name}}
                @if(!is_null($conversation->message))
                    {{ substr($conversation->message->text, 0, 20)}}
                @endif

         @else

                {{$conversation->user->name}}
                @if($conversation->message->conversation->second_user_id == auth()->user()->id)

                        Accept Message Request

                @endif

         @endif

    @endforeach

    @foreach($groups as $group)

                {{$group->name}}
                {{ $group->users_count }} Member

    @endforeach

```

#### Start Conversation

[](#start-conversation)

```
Chat::startConversationWith($otherUserId);
```

#### Accept Conversation

[](#accept-conversation)

```
Chat::acceptMessageRequest($conversationId);
```

#### Get Conversation Messages

[](#get-conversation-messages)

```
$conversation = Chat::getConversationMessageById($conversationId);
```

```

```

#### Send Message

[](#send-message)

You can change message send route in component

```
Chat::sendConversationMessage($conversationId, $message);
```

#### Start Video Call ( Not Avaliable On Group Chat )

[](#start-video-call--not-avaliable-on-group-chat-)

You can change video call route . I defined video call route `trigger/{id}` method `POST`Use `$request->all()` for video call.

```
Chat::startVideoCall($conversationId , $request->all());
```

#### Start Group Conversation

[](#start-group-conversation)

```
Chat::createGroupConversation( $groupName , [ $otherUserId , $otherUserId2 ]);
```

#### Get Group Conversation Messages

[](#get-group-conversation-messages)

```
$conversation = Chat::getGroupConversationMessageById($groupConversationId);
```

```

```

#### Send Group Chat Message

[](#send-group-chat-message)

You can change message send route in component

```
Chat::sendGroupConversationMessage($groupConversationId, $message);
```

#### Add Members to Group

[](#add-members-to-group)

```
Chat::addMembersToExistingGroupConversation($groupConversationId, [ $otherUserId , $otherUserId2 ])
```

#### Remove Members from Group

[](#remove-members-from-group)

```
Chat::removeMembersFromGroupConversation($groupConversationId, [ $otherUserId , $otherUserId2 ])
```

#### Leave From Group

[](#leave-from-group)

```
Chat::leaveFromGroupConversation($groupConversationId);
```

File Sharing
------------

[](#file-sharing)

Run this command `php artisan storage:link`

#### Send Files in Conversation

[](#send-files-in-conversation)

```
Chat::sendFilesInConversation($conversationId , $request->file('files'));
```

#### Send Files in Group Conversation

[](#send-files-in-group-conversation)

```
Chat::sendFilesInGroupConversation($groupConversationId , $request->file('files'));
```

ToDo
----

[](#todo)

- Add Members to Group
- Remove Member From Group

Next Version
------------

[](#next-version)

- Group Video Call

Credits
-------

[](#credits)

- All Contributors

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

[Demo Project](https://github.com/PHPJunior/laravel-video-chat-demo)

Support on Beerpay
------------------

[](#support-on-beerpay)

Hey dude! Help me out for a couple of 🍻!

[![Beerpay](https://camo.githubusercontent.com/eb617e16ca4827672586395ea595347f182ec33712acbf586d22d6c17ef9f26b/68747470733a2f2f626565727061792e696f2f5048504a756e696f722f6c61726176656c2d766964656f2d636861742f62616467652e7376673f7374796c653d626565722d737175617265)](https://beerpay.io/PHPJunior/laravel-video-chat) [![Beerpay](https://camo.githubusercontent.com/7cb59333abb3563c1aac1b33b5c5254dadafe5f00585f7e123df298991945727/68747470733a2f2f626565727061792e696f2f5048504a756e696f722f6c61726176656c2d766964656f2d636861742f6d616b652d776973682e7376673f7374796c653d666c61742d737175617265)](https://beerpay.io/PHPJunior/laravel-video-chat?focus=wish)

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity4

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 85.7% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~92 days

Recently: every ~157 days

Total

8

Last Release

2477d ago

PHP version history (2 changes)v1.0PHP &gt;=5.6.4

v1.1.5PHP &gt;=7.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/ae40e9a505cc770df9cf08ccc3deae2d3abec9b95df4e0c6dfc852eccc176049?d=identicon)[elbakly](/maintainers/elbakly)

---

Top Contributors

[![PHPJunior](https://avatars.githubusercontent.com/u/13845077?v=4)](https://github.com/PHPJunior "PHPJunior (24 commits)")[![moham-essam](https://avatars.githubusercontent.com/u/15854853?v=4)](https://github.com/moham-essam "moham-essam (2 commits)")[![AmrNRD](https://avatars.githubusercontent.com/u/18379490?v=4)](https://github.com/AmrNRD "AmrNRD (1 commits)")[![elbakly](https://avatars.githubusercontent.com/u/2504606?v=4)](https://github.com/elbakly "elbakly (1 commits)")

---

Tags

laravelrealtimechatWebRTCSocket.iovideo-chat

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/baklysystems-laravel-video-chat/health.svg)

```
[![Health](https://phpackages.com/badges/baklysystems-laravel-video-chat/health.svg)](https://phpackages.com/packages/baklysystems-laravel-video-chat)
```

###  Alternatives

[php-junior/laravel-video-chat

Laravel Video Chat using Socket.IO and WebRTC

82018.1k](/packages/php-junior-laravel-video-chat)[spatie/laravel-health

Monitor the health of a Laravel application

85810.0M83](/packages/spatie-laravel-health)[nahid/talk

Talk is a Laravel based realtime messaging, chatting and conversation system. It helps to develop users messaging, chatting and conversations in easy way.

1.6k58.1k4](/packages/nahid-talk)[clickbar/laravel-magellan

This package provides functionality for working with the postgis extension in Laravel.

423715.4k1](/packages/clickbar-laravel-magellan)[reedware/laravel-relation-joins

Adds the ability to join on a relationship by name.

2121.2M13](/packages/reedware-laravel-relation-joins)[api-platform/laravel

API Platform support for Laravel

59126.4k6](/packages/api-platform-laravel)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
