J'ai configuré Pusher et Laravel Echo pour que mon application avertisse les utilisateurs de certains événements.Pusher ne diffuse pas sur les canaux privés -PHP/Laravel
J'ai testé pour voir si l'installation fonctionne en diffusant sur un "canal public" et vu avec succès que cela fonctionne.
est ici l'événement lui-même:
class ItemUpdated implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
public $item;
public function __construct(Item $item)
{
$this->item = $item;
}
public function broadcastOn()
{
return new Channel('items');
}
}
Canal public:
Broadcast::channel('items', function ($user, $item) {
return true;
});
app/ressources/assets/js/bootstrap.js:
import Echo from 'laravel-echo';
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: 'my_key',
cluster: 'eu',
encrypted: true
});
et l'enregistrement Laravel Echo : (c'est dans la section "head" de ma disposition principale que s'étend la vue de tir de l'événement.)
<head>
<meta charset="utf-8">
<meta name="csrf-token" content="{{ csrf_token() }}">
<script src="{{ asset('js/app.js') }}"></script>
<script>
window.Laravel = {'csrfToken': '{{csrf_token()}}'}
window.Echo.channel('items')
.listen('ItemUpdated', function(e) {
console.log("It is working:)");
});
</script>
</head>
Maintenant, cette configuration fonctionne pour la diffusion de la chaîne publique, mais lorsque je tente de diffuser sur une chaîne privée, je reçois
//updated "ItemUpdated" event broadcastOn() method
public function broadcastOn()
{
return new PrivateChannel('items');
}
//updated laravel echo registering
<script>
window.Laravel = {'csrfToken': '{{csrf_token()}}'}
window.Echo.private('items')
.listen('ItemUpdated', function(e) {
console.log("It is working:)");
});
//console logged error
Pusher couldn't get the auth user from :myapp 500
J'ai vérifié les requêtes réseau sortantes à partir de la console de développeur et de découvrir pousse pousse à "POST" à
http://localhost:8000/broadcast/auth
mais il obtient un code d'erreur 500.
Pensée qui pourrait aider à comprendre le problème.
Que dois-je faire?
C'est une erreur '500'. Vérifiez vos journaux. – Ohgodwhy
oui, mais depuis que mon serveur fonctionne correctement pour la radiodiffusion publique, je ne sais pas où le problème est – QnARails
Comme indiqué ci-dessus. Vérifiez vos journaux. Qu'est-ce-qu'ils disent? – Ohgodwhy