Пример #1
0
        static void RequestJWTToken()
        {
            Console.WriteLine("Username:"******"Sending request to token system");
            MSMQHelper.SendMessage(userInputMQ, userModel, TokenRequestType.CreateToken.ToString(), testMQ);

            Console.WriteLine("Awaiting response in testMQ");
            Message msg = MSMQHelper.ReceiveMessage(testMQ);

            //JWTPayload payload = JWTManager.GetModelFromToken<JWTPayload>(msg.Body);


            JWTPayload payload = MSMQHelper.GetMessageBody <JWTPayload>(msg);


            Console.WriteLine("Response received");
            Console.WriteLine("Printing payload:");
            Console.WriteLine("UserID = " + payload.UserID);
            Console.WriteLine("Servers:");
            foreach (var item in payload.ServersInfo.Servers)
            {
                Console.WriteLine(item.IP + ":" + item.Port);
            }
        }
Пример #2
0
        static void Main(string[] args)
        {
            MSMQHelper msmqHelper           = new MSMQHelper();
            string     queueName            = Environment.GetEnvironmentVariable("QUEUE_NAME") ?? Constants.PRIVATE_QUEUE_NAME;
            string     directFormatProtocol = Environment.GetEnvironmentVariable("DIRECT_FORMAT_PROTOCOL") ?? Constants.DIRECT_FORMAT_PROTOCOL;

            Console.WriteLine("This should run as a separate user from the sending app.\r\nThis will try to receive a message.");
            while (true)
            {
                try
                {
                    Message msg = msmqHelper.ReceiveMessage(queueName, directFormatProtocol);
                    Console.WriteLine(Constants.TRACE_LINE_BREAK);
                    Console.WriteLine(String.Format("Received a message {0}", msg.Body));
                    Console.WriteLine(Constants.TRACE_LINE_BREAK);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                Console.WriteLine("This will try to receive a message.");

                //Console.ReadLine();
                Thread.Sleep(1000);
            }
        }
Пример #3
0
        static void Main(string[] args)
        {
            MSMQHelper msmqHelper = new MSMQHelper();

            string queueName            = Environment.GetEnvironmentVariable("QUEUE_NAME") ?? Constants.PRIVATE_QUEUE_NAME;
            string directFormatProtocol = Environment.GetEnvironmentVariable("DIRECT_FORMAT_PROTOCOL") ?? Constants.DIRECT_FORMAT_PROTOCOL;

            Console.WriteLine("This should run as a separate user from the receiving app.");
            while (true)
            {
                try
                {
                    msmqHelper.SendMessage(queueName, directFormatProtocol, "hello test", "hello");
                    Console.WriteLine(Constants.TRACE_LINE_BREAK);
                    Console.WriteLine("Sent a message");
                    Console.WriteLine(Constants.TRACE_LINE_BREAK);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                }
                Console.WriteLine("This will try to send a message.");
                Thread.Sleep(1000);
                //Console.ReadLine();
            }
        }
Пример #4
0
        private static void RecycleGuard()
        {
            while (Common.IsRun)
            {
                try
                {
                    //获取所有监控状态
                    List <MqCount> list = MSMQHelper.GetMqCount(_config);

                    if (list != null && list.Count > 0)
                    {
                        IStateCenterConnector connector = StateCenterConnectorFactory.GetAvailableConnector();
                        string msg = string.Empty;
                        foreach (MqCount mq in list)
                        {
                            msg += mq.Name + "@" + mq.Count + "@" + mq.Remark + "|";
                        }
                        connector.SendMsg("msmq", msg);
                    }
                }
                catch (Exception ex)
                {
                    CommonLog.InnerErrorLog.Error("mq监控出错:" + ex.ToString());
                }
                Thread.Sleep(Config.Internal);
            }
        }
Пример #5
0
        private static void TestQueWithObjs()
        {
            MSMQHelper.PostMessageToLocalQueue <TestData>("Byron", new TestData("What"));
            MSMQHelper.PostMessageToLocalQueue <TestData>("Byron", new TestData("The"));
            MSMQHelper.PostMessageToLocalQueue <TestData>("Byron", new TestData("Hell"));

            String result = "";

            MSMQHelper.ProcessMessagesFromLocalQueue <TestData>("Byron", (input) =>
            {
                result += input.Data;
                return(false);
            });

            Assert.IsTrue(result == "WhatTheHell");

            result = "";
            MSMQHelper.ProcessMessagesFromLocalQueue <TestData>("Byron", (input) =>
            {
                result += input.Data;
                return(true);
            });

            Assert.IsTrue(result == "WhatTheHell");

            result = "";
            MSMQHelper.ProcessMessagesFromLocalQueue <TestData>("Byron", (input) =>
            {
                result += input.Data;
                return(true);
            });

            Assert.IsTrue(result == "");
        }
Пример #6
0
        private static void TestLocalQue()
        {
            bool retVal = MSMQHelper.PostMessageToLocalQueue <String>("FAILED", "What");

            retVal = MSMQHelper.DeleteLocalQueue("FAILED");

            //Assert.IsTrue(MSMQHelper.TestLocalQueueCreation(out errorMessage) == true);
        }
Пример #7
0
        /// <summary>
        /// Pushes a message to the producer queue
        /// </summary>
        /// <param name="_user"></param>
        public void EnqueueProducerQueue(PlayerDataModel data)
        {
            Message msg = new Message(Newtonsoft.Json.JsonConvert.SerializeObject(data));

            msg.Label     = data.UserID;
            msg.Formatter = new JsonMessageFormatter();
            MSMQHelper.SendMessage(producerQueue, msg);
        }
Пример #8
0
        /// <summary>
        /// Pushes a message to the producer queue
        /// </summary>
        /// <param name="_user"></param>
        public void EnqueueProducerQueue(UserModel _user)
        {
            Message msg = new Message(Newtonsoft.Json.JsonConvert.SerializeObject(_user));

            msg.Label     = _user.UserID;
            msg.Formatter = new JsonMessageFormatter();
            MSMQHelper.SendMessage(producerQueue, msg);
        }
Пример #9
0
        private static void BeaconInputReaceived(object sender, ReceiveCompletedEventArgs e)
        {
            MessageQueue mQ = (MessageQueue)sender;
            Message      m  = mQ.EndReceive(e.AsyncResult);

            MSMQHelper.SendMessage(m.ResponseQueue, beacon.GetServerData(), "ServerData");

            mQ.BeginReceive();
        }
Пример #10
0
        void SendRequest(PlayerDataModel model)
        {
            Message m = new Message()
            {
                Formatter = new JsonMessageFormatter(),
                Body      = JsonConvert.SerializeObject(model)
            };

            MSMQHelper.SendMessage(databaseConsumerQueue, m);
        }
Пример #11
0
        static void Main(string[] args)
        {
            beacon = new Beacon();

            MessageQueue beaconInputMQ = MSMQHelper.CreateMessageQueue(GlobalVariables.BEACON_INPUT_QUEUE_NAME);

            beaconInputMQ.ReceiveCompleted += BeaconInputReaceived;
            beaconInputMQ.BeginReceive();

            Console.ReadKey();
        }
Пример #12
0
 static void Main(string[] args)
 {
     MSMQHelper.SetClientQueuePath("FormatName:Direct=TCP:192.168.1.4\\private$\\Test");
     while (true)
     {
         for (int i = 0; i < 10; i++)
         {
             MSMQHelper.ReceiveMessage(false);
             Thread.Sleep(100);
         }
         Thread.Sleep(1000);
     }
 }
Пример #13
0
        private static void SendMessage() {

            //MessageQueue messageQueue = InitMSMQ(_msmqPath);

            //Message message = new Message();
            //message.Body = "kangwl";
            //message.Priority = MessagePriority.High;
            //messageQueue.Send(message);


            MSMQHelper.MessageModel<string> messageModel=new MSMQHelper.MessageModel<string>();
          
            MSMQHelper msmqHelper = new MSMQHelper(_msmqPath);

            //Stopwatch stopwatch = new Stopwatch();
            //stopwatch.Start();
            //var re = Parallel.For(0, 30, (i, s) => {
            //    messageModel.Data = "k"+i;
            //    messageModel.Label = "message1";
            //    msmqHelper.SendMessage(messageModel);
            //    Console.WriteLine(i);
            //});

            //var re = Parallel.ForEach(Partitioner.Create(0, 20000), (a, b, c) => {
            //    for (int i = a.Item1; i < a.Item2; i++) {
            //        msmqHelper.SendMessage(messageModel);
            //        Console.WriteLine(i);
            //    }
            //});
            for (int i = 0; i < 20; i++) {
                messageModel.Data = "k" + i;
                messageModel.Label = "message1";
                msmqHelper.SendMessage(messageModel);
                Console.WriteLine(i);
            }
            //stopwatch.Stop();
            //Console.WriteLine("send ok");
            //Console.WriteLine(stopwatch.ElapsedMilliseconds);
            //if (re.IsCompleted) {


            //    Console.WriteLine("send ok");
            //    Console.WriteLine(stopwatch.ElapsedMilliseconds);
            //    msmqHelper.Dispose();
            //}

            //msmqHelper.SendMessages(new List<MSMQHelper.MessageModel<string>>() {messageModel, messageModel, messageModel, messageModel, messageModel });
            //Console.WriteLine("send success");
        }
Пример #14
0
        static void Main(string[] args)
        {
            switch (args[0])
            {
            case "mssend":
                if (args.Length > 2)
                {
                    TestSend(args[1], args[2]);
                }
                else
                {
                    TestSend(args[1]);
                }
                break;

            case "mscount":
                TestGetCount(args[1]);
                break;

            case "msallcount":
                TestAllCount();
                break;

            case "msconfig":

                var mqConfig = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "mq.config");
                if (File.Exists(mqConfig) == false)
                {
                    Console.WriteLine("找不到" + mqConfig);
                }
                else
                {
                    MSMQConfig msmqConfig = null;
                    msmqConfig = XmlHelper.Xml2Entity(mqConfig, new MSMQConfig().GetType()) as MSMQConfig;
                    List <MqCount> list = MSMQHelper.GetMqCount(msmqConfig);
                    foreach (MqCount mc in list)
                    {
                        Console.WriteLine(string.Format(" {0} | {1} | {2}", mc.Name, mc.Count, mc.Remark));
                    }
                }
                break;

            default:
                Console.WriteLine("nothing todo ");
                break;
            }
            Console.Read();
        }
Пример #15
0
 static void Main(string[] args)
 {
     MSMQHelper.SetClientQueuePath("FormatName:Direct=TCP:xxx.xxx.xxx.xxx\\private$\\Test");
     MSMQHelper.CreateQueue("Test");
     Console.WriteLine("The Queue is running");
     while (true)
     {
         for (int i = 0; i < 10; i++)
         {
             MSMQHelper.SendMessage("Mes:" + i + " over");
             Thread.Sleep(100);
         }
         Thread.Sleep(1000);
         Console.WriteLine(MSMQHelper.GetCount().ToString());
     }
 }
Пример #16
0
        public LoadBalancer()
        {
            databaseConsumerQueue = MSMQHelper.CreateMessageQueue(GlobalVariables.MYSQL_PLAYER_DB_CONSUMER_QUEUE_NAME);
            databaseProducerQueue = MSMQHelper.CreateMessageQueue(GlobalVariables.MYSQL_PLAYER_DB_PRODUCER_QUEUE_NAME);

            databaseProducerQueue.ReceiveCompleted += DatabaseProducerQueue_ReceiveCompleted;
            databaseProducerQueue.BeginReceive();

            listener = new TcpListener(IPAddress.Any, GlobalVariables.GAME_DATABASE_LOADBALANCER_PORT);
            listener.Start();

            Thread t = new Thread(() => ListenForConnections());

            t.IsBackground = true;
            t.Start();
        }
Пример #17
0
        static void Main()
        {
            databaseRequestQueue  = MSMQHelper.CreateMessageQueue(GlobalVariables.CONSUMER_QUEUE_NAME);
            databaseResponseQueue = MSMQHelper.CreateMessageQueue(GlobalVariables.PRODUCER_QUEUE_NAME);
            tokenRequestQueue     = MSMQHelper.CreateMessageQueue(GlobalVariables.TOKEN_INPUT_QUEUE_NAME);
            tokenResponseQueue    = MSMQHelper.CreateMessageQueue(GlobalVariables.TOKEN_RESPONSE_QUEUE_NAME);
            databaseRequestQueue.Purge();
            databaseResponseQueue.Purge();
            tokenRequestQueue.Purge();
            tokenResponseQueue.Purge();

            // Start Listen for Clients
            Task.Factory.StartNew(ListenForClients, TaskCreationOptions.LongRunning);

            // Work With Clients
            Task.Factory.StartNew(WaitForClients, TaskCreationOptions.LongRunning);

            KeepAlive();
        }
Пример #18
0
        /// <summary>
        /// 记录用户访问日志
        /// </summary>
        protected void VisitLog()
        {
            //抛出localhost部分(当做分布式时需要将主机以及端口记录)
            ls_visit_log log = new ls_visit_log()
            {
                user_id       = GetUserInfo().id,
                user_name     = GetUserInfo().user_name,
                visit_time    = DateTime.Now,
                visit_url     = HttpContext.Current.Request.Url.ToString(),
                visit_ip      = Utils.GetIPAddress(),
                visit_browser = Utils.GetBrowser(),
                visit_os      = Utils.GetOSVersion()
            };
            MSMQHelper msmq = new MSMQHelper();
            string     msg  = JSONHelper.SerializeObject(log);

            LogHelper.SaveVisitToLog(msg);
            msmq.Send(msg);
        }
Пример #19
0
        /// <summary>
        /// 给指定用户发送信息
        /// </summary>
        /// <param name="loginName"></param>
        /// <param name="message"></param>
        public void Send(string loginName, string message)
        {
            var user = Users.SingleOrDefault(c => c.LoginName == loginName);

            //表示用户离线状态
            if (user == null)
            {
                MessageCenter center = new MessageCenter()
                {
                    Content = message, ReceiveUserID = loginName, SendUserID = HttpContext.Current.User.Identity.Name
                };
                //仍回队列
                MSMQHelper.SendMessage <MessageCenter>(center);
            }
            else
            {
                ZmHubContext.Clients.Groups(new string[] { loginName }).notice(message);
            }
        }
Пример #20
0
 /// <summary>
 /// Instantiates the message queues
 /// </summary>
 void SetupQueues()
 {
     consumerQueue = MSMQHelper.CreateMessageQueue(GlobalVariablesLib.GlobalVariables.MYSQL_PLAYER_DB_CONSUMER_QUEUE_NAME);
     producerQueue = MSMQHelper.CreateMessageQueue(GlobalVariablesLib.GlobalVariables.MYSQL_PLAYER_DB_PRODUCER_QUEUE_NAME);
 }
Пример #21
0
        private static void UserInputRecieved(object sender, ReceiveCompletedEventArgs e)
        {
            MessageQueue mQ = (MessageQueue)sender;
            Message      m  = mQ.EndReceive(e.AsyncResult);

            try
            {
                switch (Enum.Parse(typeof(TokenRequestType), m.Label))
                {
                case TokenRequestType.CreateToken:
                {
                    //UserModel originModel = MSMQHelper.GetMessageBody<UserModel>(m);
                    UserModel userModel = MSMQHelper.GetMessageBody <UserModel>(m);
                    Console.WriteLine("UserModel received!");

                    MSMQHelper.SendMessage(beaconInputMQ, "ServersData", "ServersData", beaconResponseMQ);

                    ServersData data = MSMQHelper.GetMessageBody <ServersData>(MSMQHelper.ReceiveMessage(beaconResponseMQ, new TimeSpan(0, 0, 5)));

                    JWTPayload payload = new JWTPayload()
                    {
                        UserID = userModel.UserID, ServersInfo = data
                    };

                    userModel.Token         = JWTManager.CreateJWT(JWTManager.CreateClaims <JWTPayload>(payload), 5).RawData;
                    userModel.TokenResponse = TokenResponse.Created;

                    Message userResponse = new Message()
                    {
                        Formatter = new JsonMessageFormatter(),
                        Body      = JsonConvert.SerializeObject(userModel),
                        Label     = userModel.UserID
                    };

                    MSMQHelper.SendMessage(m.ResponseQueue, userResponse);
                    Console.WriteLine("Token send to {0}", m.ResponseQueue.Path);
                    break;
                }

                case TokenRequestType.VerifyToken:
                {
                    UserModel userModel = MSMQHelper.GetMessageBody <UserModel>(m);

                    if (JWTManager.VerifyToken(userModel.Token))
                    {
                        userModel.TokenResponse = TokenResponse.Valid;
                        userModel.Message       = "Token Valid, Connecting to Server!";
                        Console.WriteLine("\n=======TOKEN======");
                        Console.WriteLine(userModel.Token);
                        Console.WriteLine("=======TOKEN======\n");

                        Message userResponse = new Message()
                        {
                            Formatter = new JsonMessageFormatter(),
                            Body      = JsonConvert.SerializeObject(userModel),
                            Label     = userModel.UserID
                        };
                        MSMQHelper.SendMessage(m.ResponseQueue, userResponse);
                        Console.WriteLine("Token was valid!");
                        Console.WriteLine("Response send to {0}", m.ResponseQueue.Path);
                    }
                    else
                    {
                        userModel.TokenResponse = TokenResponse.Invalid;
                        userModel.Message       = "Session Token no longer valid!\n Please login, using credentials.";

                        Message userResponse = new Message()
                        {
                            Formatter = new JsonMessageFormatter(),
                            Body      = JsonConvert.SerializeObject(userModel),
                            Label     = userModel.UserID
                        };

                        MSMQHelper.SendMessage(m.ResponseQueue, userResponse);
                        Console.WriteLine("Token was invalid!");
                        Console.WriteLine("Response send to {0}", m.ResponseQueue.Path);
                    }
                    break;
                }
                }
            }
            catch (Exception error)
            {
                Console.WriteLine("Couldn't read message!");
                Console.WriteLine(error);
                Console.WriteLine(error.Message);

                UserModel userModel = new UserModel()
                {
                    UserID        = JsonConvert.DeserializeObject <UserModel>(m.Body.ToString()).UserID,
                    RequestType   = RequestTypes.Error,
                    TokenResponse = TokenResponse.Invalid,
                    Message       = "Token Request Failed: " + error.Message
                };

                Message userResponse = new Message()
                {
                    Formatter = new JsonMessageFormatter(),
                    Body      = JsonConvert.SerializeObject(userModel),
                    Label     = userModel.UserID
                };

                MSMQHelper.SendMessage(m.ResponseQueue, userResponse);
            }

            mQ.BeginReceive();
        }