我有一个问题,我现在正试图整天解决。我已经跟着了
this教程。目标是与Laravel echo
,vue.js
和pusher
进行聊天。
我完成了与教程完全相同的所有事情但由于某种原因我在pusher控制台中没有收到任何事件。仅显示连接:
但没有事件。我开火的事件看起来像这样:
<?php
namespace App\Events;
use App\Message;
use App\User;
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 MessageSent implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;
/**
* @var
*/
public $user;
/**
* @var
*/
public $message;
/**
* MessageSent constructor.
* @param User $user
* @param Message $message
*/
public function __construct(User $user, Message $message)
{
$this->user = $user;
$this->message = $message;
}
/**
* Get the channels the event should broadcast on.
*
* @return Channel|array
*/
public function broadcastOn()
{
return new PrivateChannel('chat');
}
}
我像这样开火:
broadcast(new MessageSent($user, $message))->toOthers();
当我在MessageSent事件类中dd('test');
这样时:
public function broadcastOn()
{
dd('test');
return new PrivateChannel('chat');
}
dd('test');
显示在我的网络标签中。
我将Laravel 5.4
和Vue.js 2.0
与Homestead
一起使用。这可能会发生什么?!
答案 0 :(得分:0)
根据您的调试控制台屏幕截图,您永远无法订阅任何频道,您是否为私人频道订阅设置了必要的身份验证?
您一直关注的教程的完整演示代码是on github,因此您可能需要查看该内容并查看其中的差异。
答案 1 :(得分:0)
如果您使用的是Laravel 5.4,请确保已设置了频道验证。
例如,在您的routes/channels.php
文件中,应该有这样的内容:
Broadcast::channel('chat', function ($user) {
return true; // change this to your authentication logic
});
答案 2 :(得分:0)