[求助]Laravel使用presence的時候,Unable to join channel

OrangBus發表於2021-07-15

我在使用presence廣播的時候,當新使用者加入的時候,laravel-echo-server 提示Unable to join channel. Member data for presence channel missing

我的觸發事件

Route::group(["prefix"=>"room","middleware"=>"auth"],function (){
    Route::get('room_id/{room_id}', function ($room_id) {
        broadcast(new \App\Events\GrounpChat($room_id));
        return view("group",compact('room_id'));
    })->name("room.room_id");

    Route::post('msg', function () {
        $msg = request("msg","這是一條預設的私有訊息");
        $room_id = request("room_id");
        $user = auth()->user();
        broadcast(new \App\Events\GroupMessage($room_id,$msg));
        return response()->json(["msg"=>$msg,'user'=>$user]);
    })->name("room.msg");
});

前端

 var room_id = '{{ $room_id ?? 0 }}';
 // 監聽訊息
        window.Echo.join(`room.${room_id}`)
        .here((user) =>{
            console.log("here:已經在聊天室的小夥伴")
            console.log(user)
        })
        .joining((user)=>{
            console.log("joining:某個使用者進來會受到什麼訊息")
            console.log(user)
        })
        .leaving((user)=>{
            console.log("leaving:某個使用者離開了")
            console.log(user)
        })
        .listen("GroupMessage",(res)=>{
            console.log(res)
        })

按照文件走了一遍,共有廣播和私有廣播都沒問題,google了一下,錯誤的原因好像是說:在認證頻道的時候,如果通過認證,需要返回一個陣列,而不是true or null,但是好像都沒有用,快取已經清理過了,有人能指點一下嗎?

本作品採用《CC 協議》,轉載必須註明作者和本文連結
保持勇敢,堅持有趣,生命不息,折騰不止。

相關文章