Exemplo n.º 1
0
        public string SendGroupMessagePackage(GroupMessage groupMessage)
        {
            if (clientModel.HasFunction(FunctionType.ChatSystem))
            {
                while (sending)
                {
                    Thread.Sleep(100);
                }
                sending   = true;
                isReceive = false;
                GroupMessagePackage sendPackage = new GroupMessagePackage(groupMessage, null);
                string send = JsonSerializer.Serialize(sendPackage);
                Send(send);
                while (!isReceive)
                {
                    Thread.Sleep(100);
                }

                sending = false;
                return(receiveMessage);
            }
            else
            {
                return("Chat System offline.");
            }
        }
Exemplo n.º 2
0
 private void Login()
 {
     try
     {
         Send(clientModel.GetAccount().Id);
         ChatGroupPackage      chatGroupPackage      = JsonSerializer.Deserialize <ChatGroupPackage>(GetReceive());
         PrivateMessagePackage privateMessagePackage = JsonSerializer.Deserialize <PrivateMessagePackage>(GetReceive());
         GroupMessagePackage   groupMessagePackage   = JsonSerializer.Deserialize <GroupMessagePackage>(GetReceive());
         clientModel.UpdateChatGroupList(chatGroupPackage.SendList);
         clientModel.UpdatePrivateMessageList(privateMessagePackage.SendList);
         clientModel.UpdateGroupMessageList(groupMessagePackage.SendList);
         login = true;
         clientModel.SystemOnLine(FunctionType.ChatSystem);
         new Thread(Start).Start();
     }
     catch (Exception e)
     {
         //Console.WriteLine(e);
         Disconnect();
         throw;
     }
 }
Exemplo n.º 3
0
        private async Task AfterConnect()
        {
            userId = GetReceive();
            SendChatGroupPackage(new ChatGroupPackage(await chatModel.GetChatGroupByUserId(userId), "init"));
            SendPrivateMessagePackage(new PrivateMessagePackage(await chatModel.GetPrivateMessageById(userId), "init"));
            SendGroupMessagePackage(new GroupMessagePackage(await chatModel.GetGroupMessageByUserId(userId), "init"));
            connect = true;
            while (connect)
            {
                string receive = GetReceive();
                if (receive != null)
                {
                    var    receivePackage = JsonSerializer.Deserialize <InformationPackage>(receive);
                    string result         = null;
                    switch (receivePackage.informationType)
                    {
                    case InformationType.PRIVATE_MESSAGE:
                        PrivateMessagePackage privateMessagePackage = JsonSerializer.Deserialize <PrivateMessagePackage>(receive);
                        foreach (var message in privateMessagePackage.SendList.MessageList)
                        {
                            result = chatModel.AddNewPrivateMessage(message);
                            if (!string.IsNullOrEmpty(result))
                            {
                                break;
                            }
                        }
                        break;

                    case InformationType.GROUP_MESSAGE:
                        GroupMessagePackage groupMessagePackage = JsonSerializer.Deserialize <GroupMessagePackage>(receive);
                        foreach (var message in groupMessagePackage.SendList.MessageList)
                        {
                            result = chatModel.AddNewGroupMessage(message);
                            if (!string.IsNullOrEmpty(result))
                            {
                                break;
                            }
                        }
                        break;

                    case InformationType.CHAT_GROUP:
                        ChatGroupPackage chatGroupPackage = JsonSerializer.Deserialize <ChatGroupPackage>(receive);
                        switch (chatGroupPackage.Keyword)
                        {
                        case "Add":
                            result = await chatModel.AddNewGroup(chatGroupPackage.SendList.GetGroupByIndex(0), userId);

                            break;

                        case "Update":
                            result = await chatModel.UpdateGroup(chatGroupPackage.SendList.GetGroupByIndex(0), userId);

                            break;

                        case "AddUser":
                            result = await chatModel.AddNewGroupMember(chatGroupPackage.SendList.GetGroupByIndex(0).GroupId, chatGroupPackage.TargetId, userId);

                            break;

                        case "RemoveUser":
                            result = await chatModel.RemoveGroupMember(chatGroupPackage.SendList.GetGroupByIndex(0).GroupId, chatGroupPackage.TargetId, userId);

                            break;

                        case "Remove":
                            result = await chatModel.RemoveGroup(chatGroupPackage.SendList.GetGroupByIndex(0), userId);

                            break;
                        }
                        break;

                    default:
                        result = "Wrong package.";
                        break;
                    }
                    SendErrorPackage(result);
                }
            }
        }
Exemplo n.º 4
0
        private void SendGroupMessagePackage(GroupMessagePackage sendPackage)
        {
            string send = JsonSerializer.Serialize(sendPackage);

            Send(send);
        }