Example #1
0
        public void Start <T, U>(string _path, int _port, int _maxConnections) where T : SuperUserService <U>, new() where U : UserData, new()
        {
            getUserService = delegate()
            {
                return(new T());
            };

            getUserData = delegate()
            {
                return(new U());
            };

            Action <SuperUserServiceBase, BaseProto> callBack = delegate(SuperUserServiceBase _service, BaseProto _data)
            {
                _service.SendUserData(_data as UserDataProto);
            };

            SuperUserServiceBase.SetDataHandle <UserDataProto>(callBack);

            socket = new Socket(SocketType.Stream, ProtocolType.Tcp);

            socket.Bind(new IPEndPoint(IPAddress.Parse(_path), _port));

            socket.Listen(_maxConnections);

            BeginAccept();
        }
Example #2
0
        internal void GetLoginResult(UserData _userData, ServerUnit _serverUnit)
        {
            if (_userData != null)
            {
                SuperUserServiceBase userService = Server.getUserService();

                userService.SetUserData(_userData);

                userService.SetServerUnit(_serverUnit);

                dic.Add(_userData.userName, userService);

                _serverUnit.GetLoginResult(userService);
            }
            else
            {
                _serverUnit.GetLoginResult(null);
            }
        }
Example #3
0
        internal void GetLoginResult(SuperUserServiceBase _userService)
        {
            LoginResultProto proto = new LoginResultProto();

            if (_userService != null)
            {
                userService = _userService;

                proto.result = true;
            }
            else
            {
                proto.result = false;
            }

            Console.WriteLine("LoginResult:{0}", proto.result);

            SendData(proto);
        }
Example #4
0
        internal void Login(string _userName, string _password, ServerUnit _serverUnit)
        {
            if (dic.ContainsKey(_userName))
            {
                SuperUserServiceBase userService = dic[_userName];

                Action <SuperUserServiceBase> callBack = delegate(SuperUserServiceBase _service)
                {
                    _service.Login(_userName, _password, _serverUnit);
                };

                userService.Process(callBack);
            }
            else
            {
                Action <Redis> callBack = delegate(Redis _service)
                {
                    _service.Login(_userName, _password, _serverUnit);
                };

                Redis.Instance.Process(callBack);
            }
        }
Example #5
0
 public void Kick()
 {
     userService = null;
 }