protected bool VerifyReceivePermissions(Envelope envelope) { if (!AllowInboundMessages) { Logger.Warn("Inbound messages are not allowed for this conversation."); } else if (envelope?.Address == null || envelope.Message == null) { Logger.Warn("The envelope contains incomplete data - discarding."); } else if (ReceivedMessages.ContainsKey(envelope.Message)) { Logger.Warn("Envelope is valid, however we have already received this exact message"); } else { Logger.Trace("Message receipt is permitted"); return(true); } return(false); }
/// Die Daten von den Clients werden verarbeitet public void HandleData(ServerClient client, Command command) { Console.WriteLine("Daten erhalten! ID: " + command.Identifier); /// Wird angezeigt, wenn ein Daten erhalten worden sind if (command.Identifier == "sendMessage") { List <Tuple <string, string> > messageDatas = new List <Tuple <string, string> >(); if (ReceivedMessages.ContainsKey(client.Name)) { messageDatas = ReceivedMessages[client.Name]; ReceivedMessages.Remove(client.Name); } messageDatas.Add(new Tuple <string, string>(command.Arguments[0], command.Arguments[1])); ReceivedMessages.Add(client.Name, messageDatas); ServerClient receiver = GetClientByName(command.Arguments[0]); if (receiver != null) { receiver.Send(new Command("sendText", client.Name, command.Arguments[1])); } } else if (command.Identifier == "sendName") { client.Name = command.Arguments[0]; } }