2017 © Pedro Peláez
 

library laravel-chat

Simple Laravel Group Chat

image

php-junior/laravel-chat

Simple Laravel Group Chat

  • Saturday, August 5, 2017
  • by Nyi Nyi Lwin
  • Repository
  • 1 Watchers
  • 1 Stars
  • 2 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 1 Forks
  • 0 Open issues
  • 2 Versions
  • 0 % Grown

The README.md

Laravel Chat [ WIP ]

Simple Laravel Group Chat Module, (*1)

Latest Stable Version Total Downloads, (*2)

Installation

Install using composer:, (*3)

 composer require php-junior/laravel-chat

Once installed, in your project's config/app.php file replace the following entry from the providers array:, (*4)

 PhpJunior\LaravelChat\LaravelChatServiceProvider::class,

And, (*5)

 php artisan vendor:publish --provider="PhpJunior\LaravelChat\LaravelChatServiceProvider"
 php artisan queue:table
 php artisan queue:failed-table
 php artisan migrate

Uncomment App\Providers\BroadcastServiceProvider in the providers array of your config/app.php configuration file, (*6)

Configuration

 BROADCAST_DRIVER=pusher
 PUSHER_APP_ID=your-pusher-app-id
 PUSHER_APP_KEY=your-pusher-app-key
 PUSHER_APP_SECRET=your-pusher-app-secret
 PUSHER_APP_CLUSTER=your-pusher-app-cluster

Add the PhpJunior\LaravelChat\Models\UserGroup trait to your User model, (*7)

Install the JavaScript dependencies:, (*8)

 npm install
 npm install --save laravel-echo pusher-js vue-timeago

At the bottom of resources/assets/js/bootstrap.js file:, (*9)

 import Echo from "laravel-echo"
 window.Pusher = require('pusher-js');

 window.Echo = new Echo({
     broadcaster: 'pusher',
     key: 'your-pusher-app-key',
     cluster: 'your-pusher-app-cluster',
     encrypted: true
 });

In resources/assets/js/app.js file:, (*10)

 import VueTimeago from 'vue-timeago';
 window.Bus = new Vue();

 Vue.component('groups', require('./components/laravel-chat/Groups.vue'));
 Vue.component('create-group', require('./components/laravel-chat/CreateGroup.vue'));
 Vue.component('group-chat', require('./components/laravel-chat/GroupChat.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('vue-timeago/locales/en-US.json')
     }
 })

Run npm run dev to recompile your assets., (*11)

Usage

 $groups = auth()->user()->groups;
 $users = User::where('id', '<>', auth()->user()->id)->get();
 $user = auth()->user();
 return view('home', [ 'groups' => $groups , 'users' => $users , 'user' => $user ]); 

In your templates, (*12)

 <create-group :initial-users="{{ $users }}" :current-user="{{ $user }}"></create-group>
 <groups :initial-groups="{{ $groups }}" :user="{{ $user }}"></groups>

License

The MIT License (MIT). Please see License File for more information., (*13)

Do not forget to run the queue listener to broadcast the events

The Versions

05/08 2017

dev-master

9999999-dev

Simple Laravel Group Chat

  Sources   Download

MIT

The Requires

 

by Avatar Nyi Nyi Lwin

laravel messaging pusher chat conversation

05/08 2017

dev-analysis-zdW027

dev-analysis-zdW027

Simple Laravel Group Chat

  Sources   Download

MIT

The Requires

 

by Avatar Nyi Nyi Lwin

laravel messaging pusher chat conversation