簡體   English   中英

Laravel Echo 在 Laravel 8- vujs “^2.5.17” 版本中沒有接收到 Pusher 事件

[英]Laravel Echo not receiving Pusher event in Laravel 8- vujs “^2.5.17” version

我已在推送器調試控制台中收到事件詳細信息,但無法在瀏覽器中獲得任何響應(無控制台日志)。請幫我先生/女士

我在 app.js 中編寫 Echo

created () {
    window.Echo.channel('privateChat')
        .listen('ChatEvent', (e) => {
            console.log(e);
        });
}

事件廣播function

public function sendMessage(Request $request)
{
    $user = Auth::user();
    $message = new Message();
    $message->user_id = $user->id;
    $message->message = $request->message;
    $message->friend_id = $request->friendID;
    $message->my_id = $user->id;
    $message->save();
    // broadcast(new MessageSent($user, $message))->toOthers();
    event(new ChatEvent($request->friendID));
    return ['status' => 'Message Sent!'];
}

廣播服務提供商

class BroadcastServiceProvider extends ServiceProvider
{
public function boot()
{
Broadcast::routes();
Broadcast::routes(['middleware' => ['jwt.auth']]);
require base_path('routes/channels.php');
}
}

chatEvent.php 中的事件

class ChatEvent implements ShouldBroadcast
{
use Dispatchable, InteractsWithSockets, SerializesModels;

public $friendID;

public function __construct($friendID)
{
    return $this->friendID = $friendID;
}
public function broadcastOn()
{
    return new PrivateChannel('privateChat');
}
}

通道中的路由。php

Broadcast::channel('privateChat', function () {
return Auth::check();
});

aap/js/bootstrap.js 中的 Laravel-Echo 配置

import Echo from 'laravel-echo';

window.Pusher = require('pusher-js');

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.MIX_PUSHER_APP_KEY,
    cluster: process.env.MIX_PUSHER_APP_CLUSTER,
    forceTLS: true,
    auth: {
        headers: {
            Authorization: 'Bearer ' + localStorage.getItem("token")
        },
    },
});

版本

"laravel-echo": "^1.10.0",
"laravel-mix": "^6.0.6",
"popper.js": "^1.12",
"pusher-js": "^7.0.3",
"vue": "^2.5.17",
"laravel": "8",

在此處輸入圖像描述 在此處輸入圖像描述

而不是使用window.echo.channel()使用window.echo.private()

還要確保您在.env 文件中設置了正確的廣播驅動程序。 如果您使用的是 pusher,則應該是BROADCAST_DRIVER=pusher ,然后執行php artisan config:clear

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM