2016-11-08 1 views
2

J'essaie de tester un événement déclencheur poussoir de base qui me donne une alerte simple et un journal de la console, mais cela ne fonctionnera pas. La réponse est reçue du débogage de la console Pusher mais il n'y a pas d'alertes. J'utilise laravel 5.3 et ses itinéraires et une vue pour cela. Voici mon code. J'ai censuré les informations sensibles.Pusher ne donne aucun rappel

fichier route web.php

Route::get('/bridge', function() { 

    error_reporting(E_ALL); 

    $options = array(
     'cluster' => 'ap1', 
     'encrypted' => true 
    ); 
    $pusher = new Pusher(
     'key censored', 
     'secret censored', 
     'app id censore', 
     $options 
    ); 

    $data['message'] = 'hello world'; 
    $pusher->trigger('test_channel', 'my_event', $data); 

    return view('pusher'); 
}); 

et vue pusher.blade.php

<!DOCTYPE html> 
<head> 
    <title>Pusher Test</title> 
    <script src="https://js.pusher.com/3.2/pusher.min.js"></script> 
    <script> 

     // Enable pusher logging - don't include this in production 
     Pusher.logToConsole = true; 

     var pusher = new Pusher('e5bbf707214a6223d044', { 
      cluster: 'ap1', 
      encrypted: true 
     }); 

     var channel = pusher.subscribe('test_channel'); 
     channel.bind('my_event', function(data) { 
      alert(data); 
      console.log(data); 
     }); 
    </script> 
</head> 

console chromée me donne les journaux suivants.

Pusher : State changed : initialized -> connecting 
Pusher : Connecting : {"transport":"ws","url":"wss://ws-ap1.pusher.com:443/app/censored key?protocol=7&client=js&version=3.2.2&flash=false"} 
Pusher : State changed : connecting -> connected with new socket ID 5034.8700909 
Pusher : Event sent : {"event":"pusher:subscribe","data":{"channel":"test_channel"}} 
Pusher : Event recd : {"event":"pusher_internal:subscription_succeeded","data":{},"channel":"test_channel"} 
Pusher : No callbacks on test_channel for pusher:subscription_succeeded 
+0

Mais pendant que vous avez cette application en cours d'exécution avec la console ouverte .... dans un autre onglet vous vous connectez au site pousseur un créer une nouvelle notification, puis sur l'autre onglet, il devrait se refléter sur le console.log ... as-tu fait ce test? – Hackerman

+0

je l'ai fait. deux onglets et recharger sur un –

Répondre

4

Vous avez créé une liaison pour l'événement my_event. Cette erreur se plaint que vous n'avez pas de rappel pour l'événement pusher:subscription_succeeded. Si vous voulez attraper cela et le gérer, vous devez créer une liaison.

https://pusher.com/docs/client_api_guide/client_presence_channels#pusher-subscription-succeeded

channel.bind('pusher:subscription_succeeded', function(members) { 
    alert('successfully subscribed!'); 
}); 
+0

puis-je remplacer ce channel.bind avec le mien avec my_event? –

+0

Vous pouvez lier à plusieurs événements. Cette erreur indique que vous n'avez pas de gestionnaire lié à l'événement 'pusher: subscription_succeeded'. –

+1

merci :) cela fonctionne. Je ne le savais pas avant. –