2017-09-09 5 views
0

J'ai récemment configuré mon application Laravel et configuré Echo pour recevoir des notifications poussées. Malheureusement, la fonction de rappel n'est pas déclenchée, même si l'événement est reçu et les données également. Vous pouvez trouver mon code ci-dessous:Laravel Echo ne déclenche pas de rappel

web.php

Route::get('/pusher', function() { 
    $location = ['lang' => 'langTets', 'lat' => 'latTest']; 
    event(new Freight\Events\LocationUpdated($location)); 
    return "Event has been sent!"; 
}); 

bootstrap.js

import Echo from 'laravel-echo' 

window.Pusher = require('pusher-js'); 
Pusher.logToConsole = true; 

window.Echo = new Echo({ 
    broadcaster: 'pusher', 
    key: 'iscorrect', 
    cluster: 'eu', 
    encrypted: true 
}); 

window.Echo.channel('location-updates') 
    .listen('.LocationUpdated', function(location) { 
     console.log("Test"); 
    }); 

mon app.blade

<!DOCTYPE html> 
<html lang="{{ app()->getLocale() }}"> 
<head> 
    <meta charset="utf-8"> 
    <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 

    <!-- CSRF Token --> 
    <meta name="csrf-token" content="{{ csrf_token() }}"> 

    <title>Freight</title> 

    <!-- Styles --> 
    <link href="{{ asset('css/app.css') }}" rel="stylesheet"> 
    <!-- JS --> 
    <script src="{{ asset('js/app.js') }}"></script> 
</head> 
<body> 
... 

Cela apparaît dans ma console, quand je ouvrir la page:

app.js:32652 Pusher : State changed : initialized -> connecting 
app.js:32652 Pusher : Connecting : {"transport":"ws","url":"censoredstuff"} 
app.js:32652 Pusher : State changed : connecting -> connected with new socket ID morecensoredstuff 
app.js:32652 Pusher : Event sent : {"event":"pusher:subscribe","data":{"channel":"location-updates"}} 
app.js:32652 Pusher : Event recd : {"event":"pusher_internal:subscription_succeeded","data":{},"channel":"location-updates"} 
app.js:32652 Pusher : No callbacks on location-updates for pusher:subscription_succeeded 

maintenant sur un événement déclenché, voici ce qui apparaît dans la console:

Pusher : Event recd : {"event":"Freight\\Events\\LocationUpdated","data":{"location":{"lang":"langTets","lat":"latTest"}},"channel":"location-updates"} 
app.js:32652 Pusher : No callbacks on location-updates for Freight\Events\LocationUpdated 

Avez-vous une idée, pourquoi le console.log ne fonctionne pas correctement? Si plus d'informations sont nécessaires, n'hésitez pas à demander.

Répondre

0

Je n'ai toujours pas trouvé la source du problème. Cependant, cela résout parfaitement:

  • Mettre en œuvre la méthode broadcastAs() dans votre événement comme celui-ci:

broadcastAs(){ return 'myneweventname'; }

  • changer le fichier .js de sorte que vous écoutez la alias d'événement nouvellement créé (sans la période principale).