PHPackages                             jgizinski/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. [API Development](/categories/api)
4. /
5. jgizinski/laravel-video-chat

ActiveLibrary[API Development](/categories/api)

jgizinski/laravel-video-chat
============================

Laravel Video Chat using Socket.IO and WebRTC

v1.0.13(6y ago)0271MITPHPPHP &gt;=7.1

Since Oct 14Pushed 6y agoCompare

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

READMEChangelogDependencies (7)Versions (15)Used By (0)

Laravel Video Chat (fork from wqqas1/laravel-video-chat)
========================================================

[](#laravel-video-chat-fork-from-wqqas1laravel-video-chat)

Laravel Video Chat using Socket.IO and WebRTC

Working on Laravel 6!

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

[](#installation)

```
composer require jgizinski/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

```
Wqqas1\LaravelVideoChat\LaravelVideoChatServiceProvider::class,
```

```
php artisan vendor:publish --provider="Wqqas1\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' =>  Wqqas1\LaravelVideoChat\Models\Conversation\Conversation::class,
        'group_conversations' => Wqqas1\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/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: {
        // you will need json-loader in webpack 1
        'en-US': require('date-fns/locale/en')
    }
})

```

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/Wqqas1/laravel-video-chat-demo)

This whole work is based on  but modified to make it compatible with laravel 5.7 this version does not work with laravel versions less than 5.7 for that you can download the original package

###  Health Score

28

—

LowBetter than 54% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity8

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity64

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~30 days

Recently: every ~93 days

Total

14

Last Release

2382d ago

PHP version history (2 changes)v1.0.0PHP &gt;=7.0

v1.0.5PHP &gt;=7.1

### Community

Maintainers

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

---

Top Contributors

[![wqqas1](https://avatars.githubusercontent.com/u/20567910?v=4)](https://github.com/wqqas1 "wqqas1 (12 commits)")

---

Tags

laravelrealtimechatWebRTCSocket.iovideo-chat

###  Code Quality

TestsPHPUnit

### Embed Badge

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

```
[![Health](https://phpackages.com/badges/jgizinski-laravel-video-chat/health.svg)](https://phpackages.com/packages/jgizinski-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)[andreaselia/laravel-api-to-postman

Generate a Postman collection automatically from your Laravel API

1.0k586.2k3](/packages/andreaselia-laravel-api-to-postman)[essa/api-tool-kit

set of tools to build an api with laravel

52680.5k](/packages/essa-api-tool-kit)[mll-lab/laravel-graphiql

Easily integrate GraphiQL into your Laravel project

683.2M9](/packages/mll-lab-laravel-graphiql)[simplestats-io/laravel-client

Client for SimpleStats!

4515.5k](/packages/simplestats-io-laravel-client)[ryangjchandler/bearer

Minimalistic token-based authentication for Laravel API endpoints.

8129.8k](/packages/ryangjchandler-bearer)

PHPackages © 2026

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