http://blog.csdn.net/janeky/article/details/17233199

  • 项目介绍

这是一个简单的Unity项目,实现最基本的聊天室群聊功能。登录聊天室后,用户可以输入信息进行发言,其他人可以收到消息。玩家还可以更改昵称。项目详细描述的前后端Socket通信,编码,解析二进制流的过程。

  • 这个项目的主要目标有几个:

1.实现Unity的前后端通信进制
          2.学习Protobuf的应用

  • 最终的效果

  • 前端

           a.网络通信NetClient.cs
采用c#的tcp通信方式。在初始化时,建立连接。然后在Unity的每帧函数Update()检测服务端有无数据过来。为了避免粘包等情况的发生,前后端的消息体都是这样结构的:消息体长度+消息体内容。在解析的过程中,先解析消息体长度,然后等待足够的二进制流,最后再利用Protobuf-net进行解码成实体对象。

发送消息的过程刚好相反。将实体对象序列化成二进制流,然后组装成消息体,发送到后端

           b.UI设计
程序的UI采用NGUI来制作。界面布局比较简单。昵称框,消息列表,消息框。命名好,布局好,然后在程序中处理提交函数,将消息发送到后端。当后端消息推送过来是,显示在消息列表中。有一个没来得及完善的地方,是目前还不支持中文,还没有及时弄好字体集。

  • 后端

服务端采用Netty网络框架,可以快速,高效地实现一个服务端。按照Netty的基本流程,我们可以快速搭建好一个服务器。主要的任务是编码和解码的过程。按照上述的消息体结构,我们同样是先解析长度,再读取内存,最后用Protobuf解码。服务器的业务逻辑很简单,就是广播所以的聊天信息。当客户端连接时,将连接保存起来,方便后面进行所有连接的广播。

  • 总结

该项目的源码已经放在GitHub  下载地址,欢迎大家查阅,提意见。有任何问题欢迎一起探讨ken@iamcoding.com

转载于:https://www.cnblogs.com/123ing/p/4114859.html

Unity手游之路三 基于Unity+Java的聊天室源码相关推荐

  1. Unity手游之路十自动寻路Navmesh之跳跃,攀爬,斜坡

    转载 Unity手游之路<十>自动寻路Navmesh之跳跃,攀爬,斜坡 分类: unity2013-12-27 00:50 6545人阅读 评论(5) 收藏 举报 unity3dNavme ...

  2. Unity手游之路九自动寻路Navmesh之高级主题

    http://blog.csdn.net/janeky/article/details/17492531 之前我们一起学习了如何使用Navmesh组件来实现最基本的角色自动寻路.今天我们再继续深入探索 ...

  3. 手游《六大门派》 武侠MMORPG手机游戏全套源码下载

    <六大门派>2.5D即时经典侠MMORPG手机游戏,游戏以正反副本模式让用户既能感受浩然正气的武道精神,也可以感受魔道至尊的豪迈情怀,实现一段真正自由执掌武林善恶的梦想.游戏从成为六大门派 ...

  4. java.lang.object源码_第三篇:java.lang.Object 类源码分析

    Object所包含的方法如下: ① public Object(); 构造函数: 大部分情况下,类对象的声明,都是通过构造函数完成的(Java中规定:在类定义过程中,对于未定义构造函数的类,默认会有一 ...

  5. Unity手游之路四3d旋转-四元数,欧拉角和变幻矩阵

    http://blog.csdn.net/janeky/article/details/17272625 今天我们来谈谈关于Unity中的旋转.主要有三种方式.变换矩阵,四元数和欧拉角. 定义 变换矩 ...

  6. Unity手游之路lt;七gt;角色控制器

    我们要控制角色的移动,能够所有细节都由自己来实现.控制角色模型的移动,同一时候移动摄影机,改变视角.当然Unity也提供了一些组件,能够让我们做更少的工作,实现我们所期望的功能.今天我们就一起系统来学 ...

  7. 基于微信小程序的聊天室源码设计实践

    对于聊天这个功能模块,真实的情况下都是集成第三方去做,开发起来比较快而且简单,对于学生来说设计这个用第三方是不合适的 下面给大家带来一套自己设计的小程序聊天 这个重在数据库设计 CREATE TABL ...

  8. php即时聊天的框架_workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的)...

    workerman-chat(PHP开发的基于Websocket协议的聊天室框架)(thinkphp也是支持socket聊天的) 一.总结 1.下面链接里面还有一个来聊的php聊天室源码可以学习 2. ...

  9. java技术分享主题_Java开发入门:适合新手练手的Java项目(附源码下载)

    Java作为一门古老的语言,已有20年左右的历史,这在发展日新月异的技术圈可以说是一个神话.虽然不少人曾抱怨Java语言就像老太太的裹脚布,又臭又长,有时写了500行都不能表达程序员的意图. 但从市场 ...

最新文章

  1. Callable、Future和FutureTask
  2. 到底哪些人适合学Python?适合学Python的5类人
  3. Yammer从Scala转向Java
  4. 连接真机开发安卓(Android)移动app MUI框架 添加购物车等——混合式开发(四)
  5. 远程访问数据库查询数据量一大就Hang
  6. shiro springboot 整合
  7. 同一个类里方法互相调用注解失效问题
  8. 锁屏面试题百日百刷-CSS篇(一)
  9. 删除Flex中TREE组建里的文件夹图标.
  10. 大型网站架构, 缓存的几点
  11. Windows Dos命令大全
  12. 《你必须知道的.NET》读书实践:一个基于OO的万能加载器的实现
  13. 实时报价查询系统C++编程实现(阿里面试题改编)
  14. 安卓期末作业 学生成绩管理系统(可以注册登录,录入相关信息)
  15. 环路分析仪Bode100
  16. Python爬取手机APP
  17. 数组:605.种花问题
  18. 如何将mkv格式电影转换为MP4格式
  19. Android开源的精美日历控件,热插拔设计的万能自定义UI
  20. html5 盒子阴影效果,CSS3 带阴影效果的3D盒子效果

热门文章

  1. Kaggle新赛 | HuBMAP: 识别人体肾脏组织图像中的肾小球~总奖金 6 万美金
  2. dataobject java_Object类和@Data注解
  3. 收藏 | 深度学习pytorch训练代码
  4. 赞!史上最强音视频下载神器youtube-dl回归,GitHub75k星
  5. 经验总结 | PyCharm 详细使用指南!
  6. C++中 * *的用法与区别----实操才能看明白
  7. 这就是数据分析之数据集成
  8. 卷积神经网络实现多个数字识别
  9. MSPA安装与生态源地提取
  10. modelsim和matlab联合仿真,Modelsim与Matlab联合仿真