Example #1
0
 public void XmppConnection(Jid to = null, tbl_Message message = null)
 {
     do
     {
         try
         {
             Client          = new XmppClient(HostName);
             Client.Username = UserName;
             Client.Password = Password;
             Client.Port     = Port;
             Client.Connect(Guid.NewGuid().ToPureString());
             if (null != Client && Client.Connected)
             {
                 if (null != to & null != message)
                 {
                     SendMessage(to, message);
                     Times = 0; break;
                 }
             }
         }
         catch (Exception ex)
         {
             if ((Times++) > 4)
             {
                 throw new Exception(ex.Message);
             }
         }
     } while (Times > 0 && Times < 5);
 }
Example #2
0
 public void Execute(tbl_Message Message, string Key)
 {
     //var GetData = Message.MsgBody[Key];
     //switch (Key.Split('-')[2])
     //{
     //    case "INSERT":
     //        {
     //            var Group = JsonConvert.DeserializeObject<tbl_FriendGroups>(GetData);
     //            Group.GroupID = GetDatePrefix + Guid.NewGuid().ToPureString();
     //            GetData = JsonConvert.SerializeObject(Group);
     //            if (_redisDB.FriendGroupIns(GetData))
     //                Message.MsgBody[Key] = GetData;
     //        };break;
     //    case "UPDATE":
     //        {
     //            _redisDB.FriendGroupUpd(GetData);
     //        };break;
     //    case "DELETE":
     //        {
     //            _redisDB.FriendGroupDel(GetData);
     //        };break;
     //}
     //var jid = _xmppOpenfire.GetJid(Message.MsgFrom, "PC");
     //_xmppOpenfire.SendMessage(jid, Message);
     //jid = _xmppOpenfire.GetJid(Message.MsgFrom, "MOBILE");
     //_xmppOpenfire.SendMessage(jid, Message);
 }
Example #3
0
        private void SendMessage(tbl_Message Message)
        {
            var jid = _xmppOpenfire.GetJid(Message.MsgTo, "PC");

            _xmppOpenfire.SendMessage(jid, Message);
            jid = _xmppOpenfire.GetJid(Message.MsgTo, "MOBILE");
            _xmppOpenfire.SendMessage(jid, Message);
        }
Example #4
0
 public bool SendMessage(Jid to, tbl_Message message)
 {
     try
     {
         var body = JsonConvert.SerializeObject(message);
         Client.SendMessage(to, body, null, null, MessageType.Chat);
     }
     catch
     {
         Client = null;
         XmppConnection(to, message);
     }
     return(true);
 }
Example #5
0
        public void Execute(tbl_Message Message)
        {
            var parent = Task.Factory.StartNew(() =>
            {
                var task1 = Task.Factory.StartNew(() =>
                {
                    //TODO 获得群成员列表
                });
                var task2 = Task.Factory.StartNew(() =>
                {
                    task1.Wait();
                    if (task1.IsCompleted)
                    {
                        while (_userList.Count > 0)
                        {
                            Message.MsgTo = GetUserItem();
                            SendMessage(Message);
                        }
                    }
                });
                var task3 = Task.Factory.StartNew(() =>
                {
                    task1.Wait();
                    if (task1.IsCompleted)
                    {
                        while (_userList.Count > 0)
                        {
                            Message.MsgTo = GetUserItem();
                            SendMessage(Message);
                        }
                    }
                });
                var task4 = Task.Factory.StartNew(() =>
                {
                    task1.Wait();
                    if (task1.IsCompleted)
                    {
                        while (_userList.Count > 0)
                        {
                            Message.MsgTo = GetUserItem();
                            SendMessage(Message);
                        }
                    }
                });
            });

            parent.Wait();
        }
Example #6
0
        public void Execute(tbl_Message Message, string Key)
        {
            //var Relation = JsonConvert.DeserializeObject<>(data);
            switch (Key.Split('-')[2])
            {
            case "INSERT":
            {
            }; break;

            case "UPDATE":
            {
            }; break;

            case "DELETE":
            {
            }; break;
            }
        }
Example #7
0
 public void Execute(tbl_Message Message)
 {
     try
     {
         if (Message.MsgBody["RESOURCE"].ToUpper() == "MOBILE")
         {
             var jid = _xmppOpenfire.GetJid(Message.MsgFrom, "PC");
             _xmppOpenfire.SendMessage(jid, Message);
             jid = _xmppOpenfire.GetJid(Message.MsgTo, "PC");
             _xmppOpenfire.SendMessage(jid, Message);
         }
         else
         {
             var jid = _xmppOpenfire.GetJid(Message.MsgFrom, "MOBILE");
             _xmppOpenfire.SendMessage(jid, Message);
             jid = _xmppOpenfire.GetJid(Message.MsgTo, "MOBILE");
             _xmppOpenfire.SendMessage(jid, Message);
         }
     }
     catch (Exception ex)
     {
         throw new Exception(ex.Message);
     }
 }
Example #8
0
        public bool MessageInsert(string message)
        {
            byte[] bytes      = Convert.FromBase64String(message);
            var    XmlMessage = Encoding.Default.GetString(bytes);

            try
            {
                var Message = new tbl_Message(XmlMessage);
                if (null != Message.MsgID)
                {
                    using (var conn = MysqlDB.GetOpenConnection())
                    {
                        switch (Message.MsgType)
                        {
                        case "chat":
                        case "groupchat":
                        {
                            return(conn.Execute(@"INSERT INTO tbl_Message
                                    (MsgID, MsgFrom, MsgTo,MsgType,MsgStanza,MsgDate)
                                        VALUES 
                                    (@MsgID, @MsgFrom, @MsgTo,@MsgType,@MsgStanza,@MsgDate)", Message) > 0);
                        };

                        case "chat-arrive-receipt":
                        {
                            System.Threading.Thread.Sleep(300);
                            return(conn.Execute(@"UPDATE tbl_Message
                                                          SET MsgStatus=3 WHERE MsgID=@MsgID",
                                                new
                                {
                                    MsgID = Message.MsgID
                                }) > 0);
                        };

                        case "chat-viewed-receipt":
                        {
                            System.Threading.Thread.Sleep(300);
                            return(conn.Execute(@"UPDATE tbl_Message 
                                                        SET MsgStatus=4 
                                                        WHERE MsgStatus=3 AND 
                                                              MsgFrom=@MsgFrom AND 
			                                                  MsgTo=@MsgTo"            ,
                                                new
                                {
                                    MsgFrom = Message.MsgTo,
                                    MsgTo = Message.MsgFrom
                                }) > 0);
                        };

                        case "chat-recall-message":
                        case "groupchat-recall-message":
                        {
                            System.Threading.Thread.Sleep(300);
                            return(conn.Execute(@"UPDATE tbl_Message
                                                          SET MsgStanza=@MsgStanza 
                                                          WHERE MsgID=@MsgID",
                                                new
                                {
                                    MsgID = Message.MsgID,
                                    MsgStanza = Message.MsgStanza
                                }) > 0);
                        };
                        }
                    };
                }
                return(false);
            }
            catch (Exception ex)
            {
                AddExceptionData("tbl_Message", XmlMessage, ex.Message);
                return(false);
            }
        }
Example #9
0
 public void Execute(tbl_Message Message, string Key)
 {
     //var GetData = Message.MsgBody[Key];
     //switch (Key.Split('-')[2])
     //{
     //    case "REQUEST":
     //        {
     //            var Relation = JsonConvert.DeserializeObject<tbl_FriendRelation>(GetData);
     //            Relation.RelationID = GetDatePrefix + Guid.NewGuid().ToPureString();
     //            Relation.FromUserID = Message.MsgTo;
     //            Relation.ToUserID = Message.MsgFrom;
     //            Relation.RelationStatus = 0;
     //            GetData = JsonConvert.SerializeObject(Relation);
     //            if (_redisDB.FriendRelationIns(GetData))
     //            {
     //                Message.MsgBody[Key] = GetData;
     //                var jid = _xmppOpenfire.GetJid(Message.MsgTo, "PC");
     //                _xmppOpenfire.SendMessage(jid, Message);
     //                jid = _xmppOpenfire.GetJid(Message.MsgTo, "MOBILE");
     //                _xmppOpenfire.SendMessage(jid, Message);
     //            }
     //        }; break;
     //    case "AGREE":
     //        {
     //            var Relation = JsonConvert.DeserializeObject<tbl_FriendRelation>(GetData);
     //            Relation.RelationStatus = 1;
     //            //回答自己的添加好友同意请求
     //            GetData = JsonConvert.SerializeObject(Relation);
     //            if (_redisDB.FriendRelationUpd(GetData))
     //            {
     //                Message.MsgBody[Key] = GetData;
     //                var jid = _xmppOpenfire.GetJid(Message.MsgFrom, "PC");
     //                _xmppOpenfire.SendMessage(jid, Message);
     //                jid = _xmppOpenfire.GetJid(Message.MsgFrom, "MOBILE");
     //                _xmppOpenfire.SendMessage(jid, Message);
     //            }
     //            //给对方的两个设备端发送消息
     //            Relation.RelationID = GetDatePrefix + Guid.NewGuid().ToPureString();
     //            Relation.FromUserID = Message.MsgTo;
     //            Relation.ToUserID = Message.MsgFrom;
     //            GetData = JsonConvert.SerializeObject(Relation);
     //            if (_redisDB.FriendRelationIns(GetData))
     //            {
     //                Message.MsgFrom = Relation.FromUserID;
     //                Message.MsgTo = Relation.ToUserID;
     //                Message.MsgBody[Key] = GetData;
     //                var jid = _xmppOpenfire.GetJid(Message.MsgFrom, "PC");
     //                _xmppOpenfire.SendMessage(jid, Message);
     //                jid = _xmppOpenfire.GetJid(Message.MsgFrom, "MOBILE");
     //                _xmppOpenfire.SendMessage(jid, Message);
     //            }
     //        }; break;
     //    case "REFUSE":
     //        {
     //            var Relation = JsonConvert.DeserializeObject<tbl_FriendRelation>(GetData);
     //            Relation.RelationStatus = 2;
     //            //回答自己的添加好友同意请求
     //            GetData = JsonConvert.SerializeObject(Relation);
     //            if (_redisDB.FriendRelationUpd(GetData))
     //            {
     //                Message.MsgBody[Key] = GetData;
     //                var jid = _xmppOpenfire.GetJid(Message.MsgFrom, "PC");
     //                _xmppOpenfire.SendMessage(jid, Message);
     //                jid = _xmppOpenfire.GetJid(Message.MsgFrom, "MOBILE");
     //                _xmppOpenfire.SendMessage(jid, Message);
     //            }
     //        }; break;
     //}
 }
Example #10
0
        static void Main(string[] args)
        {
            Cicada.Boot.CicadaApplication.Run();
            #region 文件压缩测试
            //List<tbl_FriendRelation> list = new List<tbl_FriendRelation>();
            //for (int i = 0; i < 11000; i++)
            //{
            //    list.Add(new tbl_FriendRelation
            //    {
            //        RelationID = Guid.NewGuid().ToPureString(),
            //        FriendGroupID = Guid.NewGuid().ToPureString(),
            //        FromUserID = Guid.NewGuid().ToPureString(),
            //        ToUserID = Guid.NewGuid().ToPureString(),
            //        FriendAuthority = new Dictionary<string, string>(),
            //        RelationRemark = "sdfsdfsdfsdfsd是的发送到发送到",
            //        SpaceGroupID = Guid.NewGuid().ToPureString(),
            //        RelationDate = DateTime.Now
            //    });
            //}
            //using (FileStream fs = new FileStream("E:\\Spark\\pppppppp.txt", FileMode.OpenOrCreate))
            //{
            //    //获得字节数组
            //    byte[] data = Encoding.Default.GetBytes(JsonConvert.SerializeObject(list));
            //    //开始写入
            //    fs.Write(data, 0, data.Length);
            //    //清空缓冲区、关闭流
            //    fs.Flush();
            //}
            //new ZipHelper().ZipManyFilesOrDictorys
            //(
            //    new List<string>() { "E:\\Spark\\pppppppp.txt" },
            //    "E:\\Spark\\pppppppp.zip",
            //    "123"
            //);

            #endregion
            var _rabbitDB = CicadaFacade.Container.Resolve <ISender>();
            Console.WriteLine("请输入任意字符 回车!");
            while (Console.ReadLine() != "exit")
            {
                Dictionary <string, string> dic = new Dictionary <string, string>();
                dic.Add("filed1", "123");
                dic.Add("filed2", "456");
                dic.Add("filed3", "789");
                var Msg = new tbl_Message
                {
                    MsgID     = Guid.NewGuid().ToPureString(),
                    MsgFrom   = "57fefb8559242e1e8ca5b13f",
                    MsgTo     = "57ff1ac4592435206863d855",
                    MsgType   = "chat",
                    MsgStanza = "",
                    MsgDate   = DateTime.Now
                };
                var MqTest = new
                {
                    // Type :chat(默认) | error | headline | normal
                    Type = "chat",
                    // FromID:可赋值也可不赋值(不赋值 收到时为system)
                    FromID     = "",
                    ToID       = "57e36fd12368600324f95126",
                    Body       = Msg,
                    BodyExtend = dic
                };

                _rabbitDB.Send("lingyi.receivemessage", MqTest);


                var MqTest1 = new
                {
                    // Type :chat(默认) | error | headline | normal
                    Type = "chat",
                    // FromID:可赋值也可不赋值(不赋值 收到时为system)
                    FromID     = "",
                    ToID       = "57ea36362368600fa8bffe58",
                    Body       = ">",
                    BodyExtend = dic
                };

                _rabbitDB.Send("lingyi.receivemessage", MqTest1);

                Console.WriteLine("发送完成,如果需要请再次输入!");
                //_rabbitDB.Send("lingyi.setbussmessage", Msg);
                //_rabbitDB.Send("lingyi.getchatmessage", Msg);
            }
        }