public void ReceiveMessage(Message message) { switch (message.Type) { case MessageType.TextMessage: MessageIncomeEvent?.Invoke(message); break; case MessageType.ImageMessage: ImageMessageIncomeEvent?.Invoke(message); break; case MessageType.ConnectMessage: NewUserJoinedEvent?.Invoke(message.SenderUserName); if (message.SenderUserName != Name) { _channel.SendMessageToUser(message.SenderUserName, new Message() { SenderUserName = Name, Type = MessageType.IsOnlineMessage }); } break; case MessageType.DisconnectMessage: UserDisconnectEvent?.Invoke(message.SenderUserName); break; case MessageType.IsOnlineMessage: UserIsOnlineEvent?.Invoke(message.SenderUserName); break; } }
public void SendMessage(string message, string userName, byte[] image = null) { var msg = new Message() { Type = image == null ? MessageType.TextMessage : MessageType.ImageMessage, SenderUserName = Name, Content = message, ReceiverUserName = userName, ImageData = image, }; if (userName == null) { _channel.BroadcastMessageToAll(msg); } else { _channel.SendMessageToUser(userName, msg); if (image == null) { MessageIncomeEvent?.Invoke(msg); } else { ImageMessageIncomeEvent?.Invoke(msg); } } }