Netty游戏服务器之一】的更多相关文章

所谓磨刀不误砍柴工,所以在搭建netty游戏服务器之前,我们先要把要准备的东西做好. 首先进入netty的官网下载最新版本的netty的jar包,http://netty.io/downloads.html,这里我下载的是netty-5.0.0.Alpha2.tar.bz2 版本的. 打开压缩包,找到all-in-one下面的netty-5.0.0.Alpha2.jar包. 打开我们的eclipse我们神圣的编辑器,然后新建一个File,取名叫lib,专门存放第三方的jar. 然后把之前的net…
客户端unity3d已经把消息发送到netty服务器上了,那么ServerHandler类的public void channelRead(ChannelHandlerContext ctx, Object msg) 就会触发, 所有我们在这里吧消息发送至各自处理的类,这里呢我根据不同的消息类型,定义了不同的消息分派类.如login消息就制定LoingDispatch类,专门处理登录这个模块. public class LoginProtocol { /* * Login_Area * **/…
我们还没讲客户端怎么向服务器发送消息,服务器怎么接受消息. 在讲这个之前我们先要了解一点就是tcp底层存在粘包和拆包的机制,所以我们在进行消息传递的时候要考虑这个问题. 看了netty权威这里处理的办法: 我决定netty采用自带的半包解码器LengthDecoder()的类处理粘包的问题,客户端我是用这里的第三种思路. 消息的前四个字节是整个消息的长度,客户端接收到消息的时候就将前4个字节解析出来,然后再根据长度接收消息. 那么消息的编解码我用的是google的protobuf,这个在业界也相…
既然已经写完了相关的服务器处理类,那么我们就来搭建客户端测试一下. 打开我们的unity3d,然后新建一个c#脚本,取名为MainClient. public class MainClient : MonoBehaviour{ private const string HOST = "127.0.0.1"; private const int PORT = 8080; public static MainClient instance; public static TcpClient…
今天我们来讲客户端Unity和服务器收发消息的具体过程. 首先,我们要在unity上搭建登陆界面的UI,这里呢,我用的是NGUI插件. 相信做过unity3d前端的都对这个非常的熟悉,最近官方的UGUI也非常的火,但是毕竟是刚出来的,有些功能还不够完善.我期待UGUI干翻NGUI的那天. 算了,不意淫了.这里我不详细的讲怎么搭建UI,我只是走个过场,讲下重点的. 这里有三个重要的gameobject,分别是userInput(账号输入框),passInput(密码输入框),加上BtnLogin(…
上节我们写个server主类,那么发现什么事情都干不了,是的,我们还没有做任何的业务处理. 接着我们开始写处理客户端连接,发送接收数据的类ServerHandler. public class ServerHandler extends ChannelHandlerAdapter{ @Override public void channelActive(ChannelHandlerContext ctx) throws Exception //当客户端连上服务器的时候会触发此函数 { Syste…
一,Netty是什么 1,Netty是由 JBOSS提供的一个 java开源框架. 2,Netty是JAR包,一般使用ALL-IN-ONE的JAR包就可以开发了. 3,Netty不需要运行在Tomcat这类服务器中,他是单独构建一个服务器. 4,Netty可以构建HTTP服务器,socket服务器,websocket服务器等. 5,Netty其实是对JDK1.4以后提供的NIO的封装,NIO就是new i/o,JDK1.7推出了NIO2. 二,Netty服务架构图 以下官方图展示了Netty基本…
又是一个美好的周末啊,现在一到周末,早上就起得晚,下午困了又会睡一两个小时,上班的时候,早上起来喝一杯咖啡,然后就能高效的工作一整天,然而到了周末人就懒散了,哈哈. 最近刚跳槽,到新公司已经干了有两周时间了,这两周时间是过得比较充实的,因为这家新公司是个小公司,以前以单机开发为主,服务器方面我一个人,做两个游戏的服务器开发工作,当然,一个很简单,另一个就相对复杂点,简单的那个是个弱联网游戏,服务器只需要做好数据存档和登录支付验证就好了,而另一个,则是相对复杂的slg游戏,我感觉这是又一款cok,…
一.前言 此游戏服务器架构是一个单服的形式,也就是说所有游戏逻辑在一个工程里,没有区分登陆服务器.战斗服务器.世界服务器等.此架构已成功应用在了多款页游服务器 .在此框架中没有实现相关业务逻辑,只有简单的测试用的注册登陆功能. 服务器工程---GameServer(https://github.com/yongzhidai/GameServer.git) 测试客户端---TestClient,模拟客户端与服务器通信,用于测试服务器功能(https://github.com/yongzhidai/…
本人80后程序猿一枚,原来搞过C++/Java/C#,因为工作原因最后选择一直从事C#开发,因为读书时候对游戏一直比较感兴趣,机缘巧合公司做一个手游的项目,我就开始游戏服务器的折腾之旅. 游戏的构架是前端unity3d,服务端C#,数据库用SqlService.基础工作做完,就开始动工,因为前期考虑不周,所以暂定使用Http短链接进行,这也是导致后面服务器失败的根本原因之一,下面就说说前期最基础的构架: 就是最基础的构架,但是接下来由于游戏的细化,一些列的问题就出现了: 1.账号登陆的顶号问题如…