Exemple #1
0
        public void Start()
        {
            //生成代理
            WebApp.Start(_servicesUrl);

            Task.Factory.StartNew(() =>
            {
                while (true)
                {
                    Thread.Sleep(1000);
                    try
                    {
                        ArrayList userIDs = new ArrayList();
                        foreach (KeyValuePair <string, User> p in SignalRHub.Usermananger.users)
                        {
                            userIDs.Add(p.Key);
                        }
                        if (userIDs.Count > 0)
                        {
                            MessageService.MessageServiceSoapClient client = new MessageService.MessageServiceSoapClient();

                            object result = client.GetMessage(string.Join(",", (string[])userIDs.ToArray(typeof(string))), null, 1);
                            DataTable dt  = ((DataSet)result).Tables[0];//new DBMessage().GetMessage((string[])userIDs.ToArray(typeof(string)));
                            if (dt.Rows.Count > 0)
                            {
                                ArrayList messageIDs = new ArrayList();
                                HubContext           = (GlobalHost.ConnectionManager.GetHubContext <SignalRHub>() as IHubContext);
                                List <Message> ls    = StaticMethod <Message> .FillModel(dt);
                                foreach (Message message in ls)
                                {
                                    var messageForwarder = MessageForwarderFactory.CreateMessageForwarder(message.MessageType);
                                    messageForwarder.MessageProcess(message, HubContext);
                                    messageIDs.Add(message.MessageID.ToString());
                                }
                                client.UpdateMessageStatus(2, string.Join(",", (string[])messageIDs.ToArray(typeof(string))));
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                    }
                }
            });
        }
Exemple #2
0
 public void ClientSendMessage(Message message)
 {
     //保存数据库消息
     MessageService.MessageServiceSoapClient client = new MessageService.MessageServiceSoapClient();
     client.SaveMessage(message.MessageContent, message.MessageType, message.SendId, message.SendName, message.ReceiveId, "", DateTime.Now.ToString(), "1", DateTime.Now.ToString());
 }