注册功能的实现

  • 实例化数据模型
  • 在注册按钮的点击事件中调用发送消息的方法
 /// <summary>/// 注册按钮的点击事件/// </summary>private void OnRegisterButtonClick(){if (input_UserName.text==null||input_UserName.text==""){EventCenter.Broadcast(EventDefine.Hint, "请输入用户名");return;}if (input_PassWord.text==null|| input_PassWord.text==""){//广播消息,显示不能注册的原因EventCenter.Broadcast(EventDefine.Hint, "请输入密码");return;}//向服务器发送注册一个账号 AccountDto dto = new AccountDto(input_UserName.text, input_PassWord.text);NetMsgCenter.Instance.SendMsg(OpCode.Account,AccountCode.Register_CREQ, dto);}

Server端处理注册的事件

  • 在账号的模块类中的接收方法,遍历子操作码
  • 创建处理注册的方法,把value强制转换为数据模型类的数据
  • 调用数据库类中的判断是否存在改用户的方法以及创建用户的方法
  • 返回给客户端
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using GameServer.DadaBase;
using MyServer;
using Protocol.Code;
using Protocol.Dto;namespace GameServer.Logic
{/// <summary>/// 账号模块的处理/// </summary>public class AccountHandler : IHandler{public void DisConnected(ClientPeer clientPeer){}public void Receive(ClientPeer client, int subCode, object value){switch (subCode){case AccountCode.Register_CREQ:Register(client,value as AccountDto);break;}}/// <summary>///客户端注册请求的处理/// </summary>private void Register(ClientPeer client, AccountDto dto){//判断数据库中是否存在该用户,存在就给客户端返回-1if (DatabaseManager.isExistUserName(dto.userName)){client.SendMsg(OpCode.Account, AccountCode.Register_SRES, -1);return;}//判断数据库中是否存在该用户,不存在就创建该用户并给客户端返回0DatabaseManager.CreatUser(dto.userName,dto.password);client.SendMsg(OpCode.Account, AccountCode.Register_SRES, 0);}}
}

客户端处理服务器的响应

  • 在账号的模块类中的接收方法,遍历子操作码
  • 创建处理服务器响应的方法
  • -1就让HInt显示该用户已经注册
  • 0就让Hint显示注册成功
sing Protocol.Code;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class AccountHandler : BaseHandler
{public override void OnReceive(int subCode, object value){switch (subCode){case AccountCode.Register_SRES:Register_SRES((int)value);break;}}/// <summary>/// 处理服务器端注册登陆后的回应/// </summary>private void Register_SRES(int value){if (value==-1){EventCenter.Broadcast(EventDefine.Hint,"该用户已经被注册");return;}if (value==0){EventCenter.Broadcast(EventDefine.Hint, "注册成功");}}
}

最终功能


有需要学习视频的欢迎关注微信公众号:

Zjh游戏(十一)注册功能的实现相关推荐

  1. Zjh游戏(十)注册功能的实现以及数据库的连接

    注册功能的实现 创建账号模块下的注册登陆的子操作码 创建注册登陆的数据模型 注册登陆的子操作码 using System; using System.Collections.Generic; usin ...

  2. java登录注册功能怎么实现_使用Java代码实现登录注册功能

    实现思路:分别创建5个包和5个类{cn.f.pojo(User.java):cn.f.Dao(UserDao.java):cn.f.Dao.impl(UserDaoImpl.java): cn.f.g ...

  3. Unity使用leancloud开发弱数据联网游戏(注册、登录和云端数据存读)

    最近,由于开发需要数据存储服务,就跑去Bmob看看,不看不要紧,发现自己以前创建的应用的数据存储服务居然变成非永久的了,只有一年的免费时间,而且还过期了.这对于我将要开发的软件时很不友好的:因此,我就 ...

  4. IDEA搭建JavaWeb项目,JDBC和Servlet-JSP技术实现注册功能

    文章目录 使用IDEA搭建JavaWeb项目 一.IDEA新建JavaWeb项目 1.新建java项目 2.修改项目配置 3.项目部署到Tomcat 二.使用JDBC和Servlet-JSP技术实现注 ...

  5. 【设计模式】观察者模式:一个注册功能也能使用到设计模式?

    人生在世如身处荆棘之中,心不动,人不妄动,不动则不伤,如心动则人妄动,伤其身,痛其骨,于是体会到世间诸般痛苦 目录 我的斗罗梦 悲催的小明 什么是观察者模式? 注册功能改造 异步非阻塞观察者模式 Ev ...

  6. java实现用户登录注册功能(用集合框架来实现)

    需求:实现用户登录注册功能(用集合框架来实现) 分析: A:需求的类和接口 1.用户类 UserBean 2.用户操作方法接口和实现类 UserDao UserDaoImpl 3.测试类 UserTe ...

  7. WordPress添加前台注册功能

    一.添加注册表单 1.首先在当前主题的目录下新建一个php文件,命名为reg-page.php,然后将page.php中的所有代码复制到reg-page.php中: 2.删除reg-page.php开 ...

  8. 注册登录案例用MVC和mysql_用MVC模式实现简单用户登录注册功能

    Model2模式 Jsp+Servlet+JavaBean MVC:开发模式 M:Model 模型层 ----> JavaBean V:View 视图层 ----> Jsp C:Contr ...

  9. 用java数组模拟登录和注册功能

    package com.linkage.login; import java.util.Scanner; public class user { // 存储用户名和密码 public static S ...

最新文章

  1. ERP与GMP结合在药类企业实施及应用
  2. pythonisalpha函数计算公式_常用python实现.ipynb
  3. 每天进步一点点《ML - K-means》
  4. server2005系统表知多少 之sysdatabases
  5. docker下gitlab安装配置使用
  6. 彻底火了!这份Python学习贴,90%程序员用的上!
  7. java.io.FileNotFoundException异常,一是“拒绝访问”,二是“系统找不到指定路径”
  8. ssh公钥的生成、查看以及config的配置
  9. 高通WCNSS驱动简析
  10. SPSS如何计算方差膨胀因子
  11. DroppyCtf靶机
  12. 得到大学夏季开学典礼之后感
  13. 怎样把PDF文件转换成JPG图片
  14. BDL程序搬迁环境应注意的问题
  15. 算法-回溯backtrack
  16. asm中的ClassWriter使用、自定义ClassVisitor和cglib的enhancer使用实例
  17. python编程做联机游戏大全单机_手把手教你将单机游戏改造成对战网游(附详细教程)...
  18. 半同步半异步模式以及Leader_Follwer模式
  19. minigui bin字库制作
  20. xp/ win 7 如何设置电脑的保护色(绿豆沙色)以及Chrome浏览器

热门文章

  1. nessus扫描mysql_Nessus使用笔记.doc
  2. 一文详解老薛主机如何安装zblogphp程序
  3. CF625E Frog Fights
  4. Linux下的ping6
  5. ALV 添加自定义按钮 (REUSE_ALV_GRID_DISPLAY 一)
  6. scrollTop滚动的时候一直是0
  7. 字节跳动大佬全新开源:Python数据分析实例,建议收藏!
  8. 记一次ubuntu系统崩溃的修复
  9. 利用CMOS数字隔离器提高智能计量解决方案的数据完整性和可靠性
  10. Python安装过程中提示:No Python 3.8 installation was detected;0x80070643严重错误 - 解决方法