product advisories, stella router improval, tests streghthening
This commit is contained in:
@@ -6,6 +6,7 @@ using StellaOps.Router.Common.Enums;
|
||||
using StellaOps.Router.Common.Models;
|
||||
using StellaOps.Router.Transport.Tcp;
|
||||
using StellaOps.Router.Transport.Tls;
|
||||
using StellaOps.Router.Transport.Messaging;
|
||||
|
||||
namespace StellaOps.Gateway.WebService.Services;
|
||||
|
||||
@@ -13,6 +14,7 @@ public sealed class GatewayTransportClient : ITransportClient
|
||||
{
|
||||
private readonly TcpTransportServer _tcpServer;
|
||||
private readonly TlsTransportServer _tlsServer;
|
||||
private readonly MessagingTransportServer? _messagingServer;
|
||||
private readonly ILogger<GatewayTransportClient> _logger;
|
||||
private readonly ConcurrentDictionary<string, TaskCompletionSource<Frame>> _pendingRequests = new();
|
||||
private readonly ConcurrentDictionary<string, Channel<Frame>> _streamingResponses = new();
|
||||
@@ -20,10 +22,12 @@ public sealed class GatewayTransportClient : ITransportClient
|
||||
public GatewayTransportClient(
|
||||
TcpTransportServer tcpServer,
|
||||
TlsTransportServer tlsServer,
|
||||
ILogger<GatewayTransportClient> logger)
|
||||
ILogger<GatewayTransportClient> logger,
|
||||
MessagingTransportServer? messagingServer = null)
|
||||
{
|
||||
_tcpServer = tcpServer;
|
||||
_tlsServer = tlsServer;
|
||||
_messagingServer = messagingServer;
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
@@ -147,6 +151,13 @@ public sealed class GatewayTransportClient : ITransportClient
|
||||
case TransportType.Certificate:
|
||||
await _tlsServer.SendFrameAsync(connection.ConnectionId, frame, cancellationToken);
|
||||
break;
|
||||
case TransportType.Messaging:
|
||||
if (_messagingServer is null)
|
||||
{
|
||||
throw new InvalidOperationException("Messaging transport is not enabled");
|
||||
}
|
||||
await _messagingServer.SendToMicroserviceAsync(connection.ConnectionId, frame, cancellationToken);
|
||||
break;
|
||||
default:
|
||||
throw new NotSupportedException($"Transport type {connection.TransportType} is not supported by the gateway.");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user