예제 #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 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();
            }
        }
예제 #3
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);
        }
예제 #4
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);
        }
예제 #5
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();
        }
예제 #6
0
        void SendRequest(PlayerDataModel model)
        {
            Message m = new Message()
            {
                Formatter = new JsonMessageFormatter(),
                Body      = JsonConvert.SerializeObject(model)
            };

            MSMQHelper.SendMessage(databaseConsumerQueue, m);
        }
예제 #7
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");
        }
예제 #8
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());
     }
 }
예제 #9
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);
            }
        }
예제 #10
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();
        }