Пример #1
0
        private async ValueTask ProcessMessageAsync(
            IRichMessageDescriptor descriptor, byte[] message)
        {
            Logger.LogInformation($"ProcessMessageAsync: Exchange: {descriptor.MessageGroup}, Topic: {descriptor.MessageTopic}");
            if (!_subscribers.TryGetValue(descriptor, out var func))
            {
                Logger.LogWarning($"ProcessMessageAsync: Subscriber not exists");
                return;
            }
            var typedMessage = _messageConverter.Deserialize(descriptor, message);

            if (typedMessage == null)
            {
                Logger.LogWarning($"ProcessMessageAsync: Cannot convert message to a typed message");
                return;
            }
            await func(typedMessage, descriptor);
        }