0

我在我的网站上使用 laravel 5.3。我需要为我的应用程序添加实时功能,所以我使用了 pusher。但问题是当事件被触发时,什么也没发生,也没有事件发送到推送器。

我在 broadcasting.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

0

检查文件中的 Pusher 凭据.env

PUSHER_KEY should be PUSHER_APP_KEY
PUSHER_SECRET should be PUSHER_APP_SECRET
于 2020-01-12T21:23:11.947 回答