问题描述
我正在尝试广播一个事件,但是它不起作用并且没有出错。 我正在使用https://github.com/beyondcode/laravel-websockets
我在laravel.log中得到了这个
[2020-10-18 14:24:46] local.INFO: broadcasting [App\Events\TestEvent] on channels [presence-
TestChannel] with payload:
{
"message": "123455","user": {
"id": 1,"name": "parsa","email": "12parsa@gmail.com","email_verified_at": null,"password": "$2y$10$gD6FxFdnzNawrPfzq.cleuXlBN00nKL.ILgQl3pM0dsgBfrOsam0y","remember_token": null,"created_at": "2020-10-02T17:50:32.000000Z","updated_at": "2020-10-02T17:50:32.000000Z","banned": 0,"last_read_at": "2020-10-16 17:24:21","profile_url": "http:\/\/localhost:8000\/others\/user-profile.png","media": []
},"socket": null
}
但是在http:// localhost:8000 / laravel-websockets上没有新事件显示,并且laravel-echo也不会触发
'apps' => [
[
'id' => env('PUSHER_APP_ID'),'name' => env('APP_NAME'),'key' => env('PUSHER_APP_KEY'),'secret' => env('PUSHER_APP_SECRET'),'path' => env('PUSHER_APP_PATH'),'capacity' => null,'enable_client_messages' => true,'enable_statistics' => true,],
'pusher' => [
'driver' => 'pusher','app_id' => env('PUSHER_APP_ID'),'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),'useTLS' => true,'host' => '127.0.0.1','port' => 6001,'scheme' => 'http'
],
App \ Events \ TestEvent.PHP:
namespace App\Events;
use Illuminate\broadcasting\Channel;
use Illuminate\broadcasting\InteractsWithSockets;
use Illuminate\broadcasting\PresenceChannel;
use Illuminate\Contracts\broadcasting\Shouldbroadcast;
use Illuminate\Foundation\Events\dispatchable;
use Illuminate\Queue\SerializesModels;
use Modules\User\Entities\User;
class TestEvent implements shouldbroadcast
{
use dispatchable,InteractsWithSockets,SerializesModels;
public $message;
public $user;
/**
* Create a new event instance.
* @param User $user
* @param $message
*/
public function __construct(User $user,$message)
{
$this->message = $message;
$this->user = $user;
}
/**
* Get the channels the event should broadcast on.
*
* @return \Illuminate\broadcasting\Channel|array
*/
public function broadcastOn()
{
return new PresenceChannel('TestChannel');
}
}
routes / Channels.PHP
broadcast::channel('TestChannel',function ($user) {
return $user;
});
.env:
PUSHER_APP_ID=myId
PUSHER_APP_KEY=myKey
PUSHER_APP_SECRET=mySecret
PUSHER_APP_CLUSTER=mt1
我正在执行的行:
broadcast(new TestEvent(User::find(1),$message));
解决方法
没关系,我忘记在.env中更改BROADCAST_DRIVER BROADCAST_DRIVER =推动器