continuity/Continuity.AuthServer/Consumers/PacketConsumer.cs

38 lines
1.3 KiB
C#
Raw Normal View History

2023-11-21 21:37:50 +01:00
// Copyright (c) 2023 Timothy Schenk. Subject to the GNU AGPL Version 3 License.
2023-11-20 19:58:30 +01:00
using Continuity.AuthServer.Packets;
2024-02-05 09:16:42 +01:00
using JetBrains.Annotations;
using MassTransit;
using NetCoreServer;
2024-02-05 11:43:58 +01:00
using OpenTelemetry.Trace;
using Rai.PacketMediator;
using Wonderking.Packets;
2023-11-19 17:07:28 +01:00
namespace Continuity.AuthServer.Consumers;
2023-08-09 16:23:41 +02:00
2024-02-05 09:16:42 +01:00
[UsedImplicitly]
2023-08-09 20:14:14 +02:00
public class PacketConsumer : IConsumer<RawPacket>
2023-08-09 16:23:41 +02:00
{
private readonly PacketDistributorService<OperationCode, TcpSession> _distributorService;
2023-08-09 16:23:41 +02:00
2024-02-05 11:43:58 +01:00
private readonly TracerProvider _tracerProvider;
public PacketConsumer(PacketDistributorService<OperationCode, TcpSession> distributorService, TracerProvider tracerProvider)
2023-11-19 17:07:28 +01:00
{
_distributorService = distributorService;
2024-02-05 11:43:58 +01:00
_tracerProvider = tracerProvider;
2023-11-19 17:07:28 +01:00
}
2023-08-09 16:23:41 +02:00
2023-08-09 20:14:14 +02:00
public Task Consume(ConsumeContext<RawPacket> context)
2023-08-09 16:23:41 +02:00
{
2024-02-05 11:43:58 +01:00
var tracer = _tracerProvider.GetTracer("Rai.PacketMediator");
using var scope = tracer.StartActiveSpan("PacketHandler");
scope.SetAttribute("PacketId", context.Message.OperationCode.ToString());
scope.SetAttribute("SessionId", context.Message.Session.Id.ToString());
scope.SetAttribute("PacketSize", context.Message.MessageBody.Length);
return _distributorService.AddPacketAsync(context.Message.MessageBody, context.Message.OperationCode, context.Message.Session);
2023-08-09 16:23:41 +02:00
}
2023-08-11 11:31:30 +02:00
}