コード例 #1
0
        private void SendChatMessage(string message)
        {
            if (btnConnectToChat.Enabled != false)
            {
                DarkUI.Forms.DarkMessageBox.ShowWarning("Sie sind in keinem Channel!", "Meldung");
            }

            Classes.ChatMessage chatMessage = new Classes.ChatMessage(message, txtNickname.Text);
            Start.redis.GetSubscriber().Publish("chat_" + txtChannelName.Text, JsonConvert.SerializeObject(chatMessage));
        }
コード例 #2
0
        private void ChatMessageHandler(RedisChannel arg1, RedisValue arg2)
        {
            ChatMessage chatMessageControl;

            Classes.ChatMessage currentChatMessage = JsonConvert.DeserializeObject <Classes.ChatMessage>(arg2);

            //check if last message is from this sender
            if (ChatMessageContainer.Controls.Count != 0)
            {
                chatMessageControl = (ChatMessage)ChatMessageContainer.Controls[ChatMessageContainer.Controls.Count - 1];

                if (chatMessageControl.Nickname == currentChatMessage.Nickname)
                {
                    //message came from the same person
                    chatMessageControl.BeginInvoke((MethodInvoker) delegate()
                    {
                        chatMessageControl.Message += Environment.NewLine + "[" + DateTime.Now.ToLongTimeString() + "] " + currentChatMessage.Message;
                    });
                }
                else
                {
                    chatMessageControl          = new ChatMessage();
                    chatMessageControl.Nickname = currentChatMessage.Nickname;
                    chatMessageControl.Message  = "[" + DateTime.Now.ToLongTimeString() + "] " + currentChatMessage.Message;
                }
            }
            else
            {
                chatMessageControl          = new ChatMessage();
                chatMessageControl.Nickname = currentChatMessage.Nickname;
                chatMessageControl.Message  = "[" + DateTime.Now.ToLongTimeString() + "] " + currentChatMessage.Message;
            }


            chatMessageControl.Width = ChatMessageContainer.Width - 30;

            ChatMessageContainer.BeginInvoke((MethodInvoker) delegate()
            {
                ChatMessageContainer.Controls.Add(chatMessageControl);
                ChatMessageContainer.AutoScrollPosition = new Point(
                    chatMessageControl.Right - ChatMessageContainer.AutoScrollPosition.X,
                    chatMessageControl.Bottom - ChatMessageContainer.AutoScrollPosition.Y);
                chatMessageControl.Invalidate(true);
            });

            ChatMessageContainer.Invalidate();
        }