我在使用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 協議》,轉載必須註明作者和本文連結