feat: chat en tiempo real bidireccional funcionando con Reverb
This commit is contained in:
+3
-9
@@ -1,17 +1,11 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Broadcast;
|
||||
use App\Models\Conversation;
|
||||
|
||||
Broadcast::channel('App.Models.User.{id}', function ($user, $id) {
|
||||
return (int) $user->id === (int) $id;
|
||||
});
|
||||
|
||||
Broadcast::channel('chat.{conversationId}', function ($user, $conversationId) {
|
||||
|
||||
return Conversation::where('id', $conversationId)
|
||||
->whereHas('users', function ($q) use ($user) {
|
||||
$q->where('user_id', $user->id);
|
||||
})
|
||||
->exists();
|
||||
|
||||
Broadcast::channel('chat.{receiverId}', function ($user, $receiverId) {
|
||||
return (int) $user->id === (int) $receiverId;
|
||||
});
|
||||
|
||||
+3
-6
@@ -52,12 +52,9 @@ Route::middleware(['auth:sanctum',config('jetstream.auth_session'),'verified',
|
||||
Route::resource('/carrera',CarreraController::class);
|
||||
Route::resource('/code',CodeController::class);
|
||||
Route::resource('/concepto',ConceptoController::class);
|
||||
// Route::get('/chat/start/{user}',[ChatController::class, 'start']);
|
||||
// Route::get('/chat/{conversation}',[ChatController::class, 'show']);
|
||||
// Route::post('/chat/send',[ChatController::class,'send']);
|
||||
// Route::post('/chat/typing', function (Request $request) {broadcast(new \App\Events\UserTyping($request->conversation_id,auth()->user()))->toOthers();return response()->json();});
|
||||
// Route::post('/chat/stop-typing', function (Request $request) {broadcast(new \App\Events\UserStoppedTyping($request->conversation_id,auth()->user()))->toOthers();return response()->json();});
|
||||
Route::resource('/docente',DocenteController::class);
|
||||
Route::get('/chat', [ChatController::class, 'index'])->name('chat.index');
|
||||
Route::get('/chat/{user}', [ChatController::class, 'show'])->name('chat.show');
|
||||
Route::post('/chat/send', [ChatController::class, 'send'])->name('chat.send');Route::resource('/docente',DocenteController::class);
|
||||
Route::resource('/documento',DocumentoController::class);
|
||||
Route::get('/documento/ver/{id}', function ($id) { $doc = Documento::findOrFail($id); $alumno = auth()->user()->alumnos()->first(); if (!$alumno || $doc->alumno_id !== $alumno->id) { abort(403); } return response()->file( storage_path('app/public/'.$doc->archivo) ); });
|
||||
Route::get('/documento/ver/{id}', [DocumentoController::class, 'ver'])->name('documento.ver');
|
||||
|
||||
Reference in New Issue
Block a user