private void ChatHubProxyOnMessageReceived(SimpleMessage receivedMessage) { receivedMessage.IsLocalMessage = false; Application.Current.Dispatcher.Invoke(() => { MessageReceivedHandler?.Invoke(new MessageReceivedEventArgs(CipherHelper.DecryptMessage(receivedMessage))); }); }
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 }); }
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); } } }