Używałeś pushera, więc zakładam, że wiesz, jak używać event.
Polecam laravel-echo-server. Jest bardzo łatwy w użyciu, z wbudowanym interfejsem API.
Oto świeży przykład projektu laravel-echo od podstaw.Po skonfigurowaniu projektu.
będziesz potrzebować predis, jeśli jeszcze go nie zainstalowałeś
composer require predis/predis
redis-server /usr/local/etc/redis.conf
- uruchom
npm install -g laravel-echo-server
- uruchom
laravel-echo-server init
- odkomentuj
App\Providers\BroadcastServiceProvider::class
wconfig/app.php
- dodaj
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/socket.io.js"></script>
w twoim app.blade.php - potrzebujesz klienta socketio, możesz uruchomić
npm install --save laravel-echo
.Jeśli nie znasz npm lub vue, możesz po prostu dołączyć ten skompilowany plik z mojego projektu github.compiledjs -
dodaj to do app.blade.php
<script> window.Echo = new Echo({ broadcaster: 'socket.io', host: '{{url('/').':6001'}}', }); Echo.private(`App.User.{{Auth::id()}}`) // private channel .listen('NewMessage', (e) => { console.log(e) }); </script>
-
na koniec uruchom laravel-echo-server start i otwórz swój projekt, zobaczysz
[20:53:21] - Lv5OKDAcuSLsK1nBAAAE authenticated for: private- App.User.1 [20:53:21] - Lv5OKDAcuSLsK1nBAAAE joined channel: private-App.User.1
-
możesz odsłuchać dowolne wydarzenie lub inne powiadomienia
-
oto przykład mojego projektu github
dodaj mały kod, abyś mógł użyć listonosza wyślij wiadomość do konkretnego użytkownika. Możesz zobaczyć wiadomość z konsoli chrome. Możesz uzyskać więcej szczegółów ze zrzutów ekranu projektu na github