127 lines
4.2 KiB
C#
127 lines
4.2 KiB
C#
using AyCode.Core.Loggers;
|
|
using FruitBank.Common;
|
|
using FruitBank.Common.Server.Services.Loggers;
|
|
using FruitBank.Common.Server.Services.SignalRs;
|
|
using Mango.Sandbox.EndPoints;
|
|
using Microsoft.AspNetCore.Http.Connections;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
|
|
// ===========================================
|
|
// === MINIMÁLIS KONFIGURÁCIÓ A SIGNALR HUB TESZTELÉSÉHEZ ===
|
|
// ===========================================
|
|
|
|
Console.WriteLine("[SANDBOX] Starting minimal SignalR Hub test configuration...");
|
|
|
|
// ===========================================
|
|
// === CORS ===
|
|
// ===========================================
|
|
|
|
builder.Services.AddCors(options =>
|
|
{
|
|
options.AddDefaultPolicy(policy =>
|
|
{
|
|
policy.AllowAnyOrigin().AllowAnyMethod().AllowAnyHeader();
|
|
});
|
|
|
|
options.AddPolicy("SignalR", policy =>
|
|
{
|
|
policy.SetIsOriginAllowed(_ => true).AllowAnyMethod().AllowAnyHeader().AllowCredentials();
|
|
});
|
|
});
|
|
|
|
// ===========================================
|
|
// === DI VALIDÁCIÓ KIKAPCSOLÁSA ===
|
|
// ===========================================
|
|
|
|
builder.Host.UseDefaultServiceProvider(options =>
|
|
{
|
|
options.ValidateScopes = false;
|
|
options.ValidateOnBuild = false;
|
|
});
|
|
|
|
// ===========================================
|
|
// === ALAPVETÕ INFRASTRUKTÚRA ===
|
|
// ===========================================
|
|
|
|
builder.Services.AddHttpContextAccessor();
|
|
builder.Services.AddMemoryCache();
|
|
builder.Services.AddDistributedMemoryCache(); // IDistributedCache a Session-höz
|
|
builder.Services.AddSession();
|
|
|
|
// ===========================================
|
|
// === LOGGER - Csak ConsoleLogWriter a teszteléshez ===
|
|
// ===========================================
|
|
|
|
builder.Services.AddScoped<IAcLogWriterBase, ConsoleLogWriter>();
|
|
|
|
// ===========================================
|
|
// === TESZT ENDPOINT ===
|
|
// ===========================================
|
|
|
|
builder.Services.AddScoped<ITestSignalREndpointServer, TestSignalREndpoint>();
|
|
|
|
// ===========================================
|
|
// === SIGNALR KONFIGURÁCIÓ ===
|
|
// ===========================================
|
|
|
|
builder.Services.AddSignalR(hubOptions =>
|
|
{
|
|
hubOptions.EnableDetailedErrors = true;
|
|
hubOptions.MaximumReceiveMessageSize = 30_000_000;
|
|
hubOptions.KeepAliveInterval = TimeSpan.FromSeconds(FruitBankConstClient.SignalRKeepAliveIntervalSecond);
|
|
hubOptions.ClientTimeoutInterval = TimeSpan.FromSeconds(FruitBankConstClient.SignarlRTimeoutIntervalSecond);
|
|
hubOptions.StatefulReconnectBufferSize = 30_000_000;
|
|
});
|
|
|
|
// ===========================================
|
|
// === APP BUILD ===
|
|
// ===========================================
|
|
|
|
var app = builder.Build();
|
|
|
|
app.UseCors("SignalR");
|
|
app.UseSession();
|
|
|
|
// ===========================================
|
|
// === SIGNALR HUB REGISZTRÁCIÓ ===
|
|
// ===========================================
|
|
|
|
var fruitBankHubEndPoint = $"/{FruitBankConstClient.DefaultHubName}";
|
|
|
|
// SANDBOX TESZT HUB - egyszerûsített, nincs Nop függõség
|
|
app.MapHub<DevAdminSignalRHubSandbox>(fruitBankHubEndPoint, options =>
|
|
{
|
|
options.Transports = HttpTransportType.WebSockets;
|
|
options.WebSockets.CloseTimeout = TimeSpan.FromSeconds(10);
|
|
options.AllowStatefulReconnects = true;
|
|
options.TransportMaxBufferSize = 30_000_000;
|
|
options.ApplicationMaxBufferSize = 30_000_000;
|
|
options.TransportSendTimeout = TimeSpan.FromSeconds(60);
|
|
});
|
|
|
|
var loggerHubEndPoint = $"/{FruitBankConstClient.LoggerHubName}";
|
|
app.MapHub<LoggerSignalRHub>(loggerHubEndPoint, options =>
|
|
{
|
|
options.AllowStatefulReconnects = false;
|
|
});
|
|
|
|
app.MapGet("/", () => "SANDBOX is running!");
|
|
app.MapGet("/health", () => Results.Ok(new { status = "healthy", timestamp = DateTime.UtcNow }));
|
|
|
|
// ===========================================
|
|
// === CONSOLE OUTPUT ===
|
|
// ===========================================
|
|
|
|
Console.Title = "[SB] - SignalR Test";
|
|
|
|
Console.WriteLine("===========================================");
|
|
Console.WriteLine(" FRUITBANK SANDBOX - SignalR Test Mode");
|
|
Console.WriteLine("===========================================");
|
|
Console.WriteLine($" Base URL: http://localhost:59579");
|
|
Console.WriteLine($" SignalR Hub: {fruitBankHubEndPoint}");
|
|
Console.WriteLine($" Logger Hub: {loggerHubEndPoint}");
|
|
Console.WriteLine("===========================================");
|
|
|
|
app.Run();
|