今のところ、2 人のユーザー間の 1 対 1 のチャットであるチャット ルームがあります。
無許可チャンネルです
Broadcast::channel('chat.{roomId}', function ($user, $roomId) {
return ['id' => $user->id, 'name' => $user->name];
});
このように動作しますが、部屋の送信者または受信者のどちらであるかを確認できるように、このように変更したかったのですが、そうでない場合は許可されません。
Broadcast::channel('chat.{roomId}', function ($user, $roomId) {
if ($user->canJoinRoom($roomId)) {
return ['id' => $user->id, 'name' => $user->name];
}
});
これは User のモデルの canJoinRoom メソッドです
public function canJoinRoom($roomID) {
$room = MessageRoom::findOrFail($roomID);
if($room){
if(auth()->user()->id == $room->user_id || auth()->user()->id == $room->receiver_id){
return $this->room_id == $roomID;
}else{
return false;
}
}else {
return false;
}
}
それで、ユーザーの方法を使用して追加のものをチェックしようとすると、ブロードキャスト/認証404が見つかりません。
この方法も試しましたが、まだブロードキャスト/認証 404 が見つかりません。
if ($user->id === MessageRoom::findOrFail($roomId)->user_id || $user->id === MessageRoom::findOrFail($roomId)->receiver_id) {
return ['id' => $user->id, 'name' => $user->name];
}