This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
using FaceRecognitionApp.Hubs;
|
||||
using FaceRecognitionApp.Services;
|
||||
using Microsoft.AspNetCore.SignalR;
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
|
||||
// Регистрация сервисов
|
||||
builder.Services.AddSingleton<DatabaseService>();
|
||||
builder.Services.AddSingleton<FaceRecognitionService>();
|
||||
builder.Services.AddSignalR();
|
||||
|
||||
var app = builder.Build();
|
||||
|
||||
// 1. Включаем поиск файлов по умолчанию (index.html, default.html и т.д.)
|
||||
app.UseDefaultFiles();
|
||||
|
||||
// 2. Включаем раздачу статических файлов (css, js, картинки)
|
||||
app.UseStaticFiles();
|
||||
|
||||
// 3. Подключаем SignalR хаб
|
||||
app.MapHub<FaceHub>("/faceHub");
|
||||
|
||||
// Инициализация камеры и распознавания
|
||||
var db = app.Services.GetRequiredService<DatabaseService>();
|
||||
var faceService = app.Services.GetRequiredService<FaceRecognitionService>();
|
||||
|
||||
// URL камеры (замените на свой или используйте тестовый видеофайл)
|
||||
var cameraUrl = Environment.GetEnvironmentVariable("CAMERA_URL") ?? "rtsp://admin:4NUDZhJ7@172.22.10.101:554/cam/realmonitor?channel=1&subtype=1";
|
||||
|
||||
try
|
||||
{
|
||||
Console.WriteLine($"Connecting to camera: {cameraUrl}...");
|
||||
var camera = new CameraService(cameraUrl, faceService, async (face) => {
|
||||
var hub = app.Services.GetRequiredService<IHubContext<FaceHub>>();
|
||||
await hub.Clients.All.SendAsync("NewFace", new
|
||||
{
|
||||
image = Convert.ToBase64String(face.ImageData),
|
||||
isRecognized = face.IsRecognized,
|
||||
name = face.MatchedEmployee?.Name ?? "Unknown"
|
||||
});
|
||||
});
|
||||
camera.Start();
|
||||
Console.WriteLine("✅ Camera service started.");
|
||||
|
||||
// Корректное завершение работы камеры при остановке приложения
|
||||
app.Lifetime.ApplicationStopping.Register(() => {
|
||||
Console.WriteLine("Shutting down camera...");
|
||||
camera.Dispose();
|
||||
});
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Console.WriteLine($"⚠️ Camera Error: {ex.Message}");
|
||||
Console.WriteLine("Application will run without camera monitoring.");
|
||||
}
|
||||
|
||||
Console.WriteLine("🚀 Application is ready. Open http://localhost:5290 in your browser.");
|
||||
app.Run();
|
||||
Reference in New Issue
Block a user