0

ウェブサイトにlaravel 5.3を使用しています。アプリにリアルタイム機能を追加する必要があったため、プッシャーを使用しました。しかし、問題は、イベントがトリガーされたときに何も起こらず、プッシャーにイベントが送信されないことです。

Broadcast.phpファイルの私のプッシャー構成:

 'pusher' => [
        'driver' => 'pusher',
        'key' => env('PUSHER_KEY'),
        'secret' => env('PUSHER_SECRET'),
        'app_id' => env('PUSHER_APP_ID'),
        'options' => [
            'cluster' => 'eu',
            'encrypted'=>true
        ],
    ],

私のイベントクラス:

<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

 class ChatEvent implements ShouldBroadcast
  {
   use InteractsWithSockets, SerializesModels;

public $data;

/**
 * Create a new event instance.
 *
 * @return void
 */
public function __construct($data)
{
    $this->data = $data;

}

/**
 * Get the channels the event should broadcast on.
 *
 * @return Channel|array
 */
public function broadcastOn()
{

    // return new PrivateChannel('test-channel');
    return ['test-channel'];
}

そして私のプッシャーJavaScriptコード:

 Pusher.logToConsole = true;

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

var channel = pusher.subscribe('test-channel');
channel.bind('App\\Events\\ChatEvent', function(data) {
    console.log(data);
  alert(data);
});
4

1 に答える 1