コード例 #1
0
        private void ServerFunction(Message message, IPEndPoint endPoint)
        {
            User     user;
            Operator @operator;

            if (message is P2PRequest)
            {
                var request = message as P2PRequest;
                user = new User
                {
                    EndPoint  = MessageTransfer.EndPoint.Parse(endPoint),
                    State     = 0,
                    UserEmail = request.UserEmail,
                    UserID    = request.UserID,
                    UserName  = request.UserName
                };
                penddingUsers.Enqueue(user);

                Console.WriteLine("P2P request from {0}: Name: {1}, User ID: {2}, Email: {3}",
                                  endPoint.ToString(), user.UserName, user.UserID, user.UserEmail);

                SendConnectionInfoToUser();
            }
            else if (message is ReadyRequest)
            {
                var request = message as ReadyRequest;
                @operator = new Operator
                {
                    EndPoint          = MessageTransfer.EndPoint.Parse(endPoint),
                    ListeningEndPoint = request.EndPoint,
                    OperatorID        = request.OperatorID,
                    State             = 0
                };
                readyOperators.Enqueue(@operator);
                Console.WriteLine("Ready request from {0}, End Point: {1}",
                                  @operator.OperatorID, @operator.EndPoint.ToIPEndPoint().ToString());
                messageServer.CloseConnection(endPoint);
                SendConnectionInfoToUser();
            }
            else
            {
                messageServer.CloseConnection(endPoint);
            }
        }