/// <summary>
    /// 处理客户端端的登录请求
    /// </summary>
    /// <param name="operationRequest"></param>
    /// <param name="sendParameters"></param>
    /// <param name="peer"></param>
    public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, MyPeer peer)
    {
        string      username  = DictTool.GetValue(operationRequest.Parameters, (byte)UserCode.Username) as string;
        string      password  = DictTool.GetValue(operationRequest.Parameters, (byte)UserCode.Password) as string;
        UserManager manager   = new UserManager();
        bool        isSuccess = manager.VerifyUser(username, password);

        OperationResponse response = new OperationResponse(operationRequest.OperationCode);

        if (isSuccess)
        {
            response.ReturnCode = (short)ReturnCode.Success;
            peer.username       = username;
        }
        else
        {
            response.ReturnCode = (short)ReturnCode.Failed;
        }
        peer.SendOperationResponse(response, sendParameters);
    }
Exemple #2
0
    /// <summary>
    /// 处理客户端的注册请求
    /// </summary>
    /// <param name="operationRequest"></param>
    /// <param name="sendParameters"></param>
    /// <param name="peer"></param>
    public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, MyPeer peer)
    {
        string            username = DictTool.GetValue <byte, object>(operationRequest.Parameters, (byte)UserCode.Username) as string;
        string            password = DictTool.GetValue <byte, object>(operationRequest.Parameters, (byte)UserCode.Password) as string;
        UserManager       manager  = new UserManager();
        UserInfo          user     = manager.GetByUsername(username);
        OperationResponse response = new OperationResponse(operationRequest.OperationCode);

        if (user == null)
        {
            user = new UserInfo()
            {
                Username = username, Password = password
            };
            manager.Add(user);
            response.ReturnCode = (short)ReturnCode.Success;
        }
        else
        {
            response.ReturnCode = (short)ReturnCode.Failed;
        }
        peer.SendOperationResponse(response, sendParameters);
    }
Exemple #3
0
    public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, MyPeer peer)
    {
        switch (operationRequest.OperationCode)//通过OpCode区分请求
        {
        case 1:
            Dictionary <byte, object> data = operationRequest.Parameters;
            object intValue;
            object stringValue;
            data.TryGetValue(1, out intValue);
            data.TryGetValue(2, out stringValue);
            MyGameServer.LogInfo("服务器:得到客户端传来的参数数据是:" + intValue.ToString() + "  " + stringValue.ToString());

            //向客户端作出响应
            OperationResponse opResponse = new OperationResponse(1);

            //向客户端发送参数
            Dictionary <byte, object> data2 = new Dictionary <byte, object>();
            data2.Add(1, 300);
            data2.Add(2, "服务器:给客户端发送参数数据");
            opResponse.SetParameters(data2);
            peer.SendOperationResponse(opResponse, sendParameters);    //给客户端一个响应,只能在这里调用,在其它地方无效

            ///客户端在没有向服务器端发送请求,但服务器端想通知或发送数据给客户端时,就可以使用SendEvent方法,
            ///SendEvent方法可以在服务器任何地方调用。
            //EventData ed = new EventData(1);
            //ed.Parameters = data2;
            //SendEvent(ed, new SendParameters());
            break;

        case 2:
            break;

        default:
            break;
        }
    }