带有专用通道的laravel 5.4 pusher(laravel echo)403错误

时间:2018-07-18 06:50:45

标签: laravel pusher broadcasting laravel-echo

对不起,我的英语不是我的主要语言。 我使用laravel 5.4 + pusher + laravel echo进行广播。 没问题,公共频道一切正常。 但在私人频道上我也收到403错误。

我的事件(newpsignal.php):

<?php

namespace App\Events;

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

class newpSignal implements ShouldBroadcast
{
    use Dispatchable, InteractsWithSockets, SerializesModels;

    public $user_id;

    public function __construct($user_id)
    {
        $this->user_id=$user_id;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return \Illuminate\Broadcasting\Channel|array
     */
    public function broadcastOn()
    {
        return new PrivateChannel('reload-account-'.$this->user_id);
    }
}

我的channels.php

Broadcast::channel('reload-account-.{user_id}', function ($account,$user_id) {
  return true; //Auth::id()===$user_id;
});

bootstrap.js

     import Echo from 'laravel-echo'

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

 window.Echo = new Echo({
    authEndpoint:   'http://localhost/public/broadcasting/auth',
     broadcaster:   'pusher',
     key:           '********', //its my key
     cluster:       'eu',
     encrypted:     true,
 });

刀片上的其他js代码(公开监听工作):

  Echo.channel('<?php echo Redis::get('default_'.Auth::id());?>-market')
  .listen('newSignal', function (e) {
    doOrders(e.signal);
  });
  Echo.private('reload-account-<?php echo Auth::id();?>')
  .listen('newpSignal', function (e) {
    alert(e)
  });

错误:

Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException:  in file C:\wamp64\www\vendor\laravel\framework\src\Illuminate\Broadcasting\Broadcasters\Broadcaster.php on line 65
Stack trace:
  1. Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException-&gt;() C:\wamp64\www\vendor\laravel\framework\src\Illuminate\Broadcasting\Broadcasters\Broadcaster.php:65
  2. Illuminate\Broadcasting\Broadcasters\Broadcaster-&gt;verifyUserCanAccessChannel() C:\wamp64\www\vendor\laravel\framework\src\Illuminate\Broadcasting\Broadcasters\PusherBroadcaster.php:50
  3. Illuminate\Broadcasting\Broadcasters\PusherBroadcaster-&gt;auth() C:\wamp64\www\vendor\laravel\framework\src\Illuminate\Broadcasting\BroadcastManager.php:310
  4. Illuminate\Broadcasting\BroadcastManager-&gt;__call() C:\wamp64\www\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:221
  5. Illuminate\Support\Facades\Facade-&gt;__callStatic() C:\wamp64\www\vendor\laravel\framework\src\Illuminate\Broadcasting\BroadcastController.php:19
  6. Illuminate\Broadcasting\BroadcastController-&gt;authenticate() C:\wamp64\www\vendor\laravel\framework\src\Illuminate\Routing\Controller.php:54
  7. call_user_func_array() C:\wamp64\www\vendor\laravel\framework\src\Illuminate\Routing\Controller.php:54
  8. Illuminate\Routing\Controller-&gt;callAction() C:\wamp64\www\vendor\laravel\framework\src\Illuminate\Routing\ControllerDispatcher.php:45

0 个答案:

没有答案