Files
law-api/routes/channels.php
2026-08-20 16:21:03 +03:30

38 lines
1.3 KiB
PHP

<?php
use Illuminate\Support\Facades\Broadcast;
/*
|--------------------------------------------------------------------------
| Broadcast Channels
|--------------------------------------------------------------------------
|
| Here you may register all of the Events broadcasting channels that your
| application supports. The given channel authorization callbacks are
| used to check if an authenticated user can listen to the channel.
|
*/
Broadcast::channel('App.Models.User.{id}', function ($user, $id) {
return (int) $user->id === (int) $id;
});
// کانال انتظار برای پیدا شدن حریف
Broadcast::channel('matchmaking.{ticketId}', function ($user, $ticketId) {
// در این مرحله، هر کاربری که لاگین باشد و تیکت خودش را داشته باشد اجازه دسترسی دارد
return true;
});
// کانال داخل بازی (برای ارسال پایان بازی یا تغییرات زنده)
Broadcast::channel('pvp-match.{matchId}', function ($user, $matchId) {
$match = \App\Models\PvpMatch::find($matchId);
if (!$match) {
return false;
}
// فقط اگر این کاربر یکی از دو بازیکنِ این مسابقه باشد، اجازه دسترسی به کانال را دارد
return $match->players()->where('user_id', $user->id)->exists();
});