Esempio n. 1
0
        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;
            }
        }
Esempio n. 2
0
        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);
                }
            }
        }