示例#1
0
        private void ChatHubProxyOnMessageReceived(SimpleMessage receivedMessage)
        {
            receivedMessage.IsLocalMessage = false;

            Application.Current.Dispatcher.Invoke(() =>
            {
                MessageReceivedHandler?.Invoke(new MessageReceivedEventArgs(CipherHelper.DecryptMessage(receivedMessage)));
            });
        }
示例#2
0
 public override void HandleBasicDeliver(string consumerTag, ulong deliveryTag, bool redelivered, string exchange, string routingKey, IBasicProperties properties, byte[] body)
 {
     MessageReceivedHandler?.Invoke(this, new BasicDeliverEventArgs()
     {
         ConsumerTag     = consumerTag,
         DeliveryTag     = deliveryTag,
         Redelivered     = redelivered,
         Exchange        = exchange,
         RoutingKey      = routingKey,
         BasicProperties = properties,
         Body            = body
     });
 }
示例#3
0
        public async Task Read(NetworkStream stream, CancellationToken cancellationToken, Guid id)
        {
            if (!awaitingMessage)
            {
                if (client.Available >= 4)
                {
                    var bytes = new byte[4];

                    await stream.ReadAsync(bytes, 0, 4, cancellationToken);

                    awaitingMessageSize = BitConverter.ToInt32(bytes, 0);

                    if (awaitingMessageSize > config.BufferSizeInBytes)
                    {
                        throw new MeepoException($"Buffer size {config.BufferSizeInBytes} (bytes) is less than the incoming message size {awaitingMessageSize} (bytes)!");
                    }

                    awaitingMessage = true;
                }
            }

            if (awaitingMessage)
            {
                if (client.Available >= awaitingMessageSize)
                {
                    var bytes = new byte[awaitingMessageSize];

                    if (awaitingMessageSize > 0)
                    {
                        await stream.ReadAsync(bytes, 0, awaitingMessageSize, cancellationToken);
                    }

                    awaitingMessage = false;

                    var args = new MessageReceivedEventArgs(id, bytes);

                    messageReceived?.Invoke(args);
                }
            }
        }