提问者:小点点

Laravel网络插座广播,但不显示在仪表板


我试图广播一个事件,但它不起作用,也没有给出错误。我正在使用https://github.com/beyondcode/laravel-websockets

我在拉威尔买的。日志

[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也不会触发

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

配置/广播。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'
        ],
    ],

应用程序\事件\测试vent.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');
    }
}

路线/频道。php

Broadcast::channel('TestChannel', function ($user) {
    return $user;
});

.环境:

PUSHER_APP_ID=myId
PUSHER_APP_KEY=myKey
PUSHER_APP_SECRET=mySecret
PUSHER_APP_CLUSTER=mt1

我正在执行的行:

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

共1个答案

匿名用户

没关系,我忘了在. envBROADCAST_DRIVER中BROADCAST_DRIVER