微信登录

Operation双向 - 服处理 - XXHandler PE + 例子

作用:服务器处理请求

格式

增加MyGameServer.InitHandler()方法上增加

  1. //登录
  2. LoginHandler loginHandler = new LoginHandler();
  3. HandlerDict.Add(loginHandler.OpCode, loginHandler);

创建XXHandler.cs
修改MyGameServer
修改LoginHandler
修改OperationCode
//不改数据库
UserManager manager = new UserManager();//实例化经理
//不改回复客户端
OperationResponse response = new OperationResponse(operationRequest.OperationCode);//实例化新的回复客户端

例子

Script—Request—新建LoginHandler.cs

  1. LoginHandler.cs
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using Common;
  7. using Photon.SocketServer;
  8. using Common.Tools;
  9. using MyGameServer.Manager;
  10. namespace MyGameServer.Handler
  11. {
  12. class LoginHandler:BaseHandler
  13. {
  14. //找到是那个请求
  15. public LoginHandler()
  16. {
  17. OpCode = OperationCode.Login;//Login改变
  18. }
  19. public override void OnOperationRequest(OperationRequest operationRequest, SendParameters sendParameters, ClientPeer peer)
  20. {
  21. //获得数据
  22. string username = DictTool.GetValue<byte, object>(operationRequest.Parameters, (byte)ParameterCode.Username) as string;//获得username
  23. string password = DictTool.GetValue<byte, object>(operationRequest.Parameters, (byte)ParameterCode.Password) as string;//获得password
  24. //数据库
  25. UserManager manager = new UserManager();//实例化经理
  26. bool isSuccess = manager.VerifyUser(username, password);//用经理验证一下,带上username,password。返回一个布尔值
  27. //准备回复客户端的数据
  28. OperationResponse response = new OperationResponse(operationRequest.OperationCode);//实例化新的回复客户端,是/否
  29. if (isSuccess)
  30. {
  31. response.ReturnCode = (short)Common.ReturnCode.Success;//是
  32. peer.username = username;//登录名
  33. }
  34. else
  35. {
  36. response.ReturnCode = (short)Common.ReturnCode.Failed;//否
  37. }
  38. //回复客户端
  39. peer.SendOperationResponse(response, sendParameters);//回复客户端
  40. }
  41. }
  42. }