简体   繁体   中英

Laravel Websockets Broadcast but not showing in dashboard

I'm trying to broadcast an event but it doesn't work and gives no errors. I'm using https://github.com/beyondcode/laravel-websockets

I get this in 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
}  

But at http://localhost:8000/laravel-websockets no new events show and laravel-echo doesn't trigger too

config/websckets.php :

'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,
    ],
],

config/broadcasting.php:

'pusher' => [
        'driver' => 'pusher',
        'key' => env('PUSHER_APP_KEY'),
        'secret' => env('PUSHER_APP_SECRET'),
        '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

Line I'm executing:

broadcast(new TestEvent(User::find(1), $message));

没关系,我忘了更改 .env BROADCAST_DRIVER=pusher 中的 BROADCAST_DRIVER

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM