Laravel-websocket。无法触发事件

Вал*_*лов 3 php websocket laravel

我正在尝试按照本手册使用 Beyondcode 的 laravel-websockets 和 Pusher-php-server 制作实时 Laravel 应用程序。但我没有指定包的版本, pusher/pusher-php-server因为它需要过时的 php 版本。

我创建了“NewTrade”事件实现“ShouldBroadcastNow”然后我通过使用修补程序运行以下命令来触发该事件:

event (new \App\Events\NewTrade('test'))
Run Code Online (Sandbox Code Playgroud)

它返回:

>>> event (new \App\Events\NewTrade('test'));
=> [
    null,
]
Run Code Online (Sandbox Code Playgroud)

NewTrade 事件的“broadcastOn”方法被触发

    public function broadcastOn()
    {

        $test = new \App\Models\Test();
        $test->title = "event";
        $test->save();

        return new Channel('trades');
    }
Run Code Online (Sandbox Code Playgroud)

我在数据库中看到这一点,正在测试表中创建新记录。但在 websockets 仪表板(http://127.0.0.1:8000/laravel-websockets)中没有有关此事件的信息。

请帮助((我做错了什么?

小智 8

我没有指定 Pusher/pusher-php-server 包的版本,因为它需要过时的 php 版本。

我犯了同样的错误,最终在这个问题上挣扎了几个小时。

显然,最新版本pusher-php-serverlaravel-websockets.

github 用户mankms发布的以下解决方法为我解决了这个问题:

# run this command from the root directory of your Laravel app
composer require pusher/pusher-php-server:7.0.2
Run Code Online (Sandbox Code Playgroud)