一、介绍
1. 版本介绍
netty的版本大致分为netty3.x和netty4.x、netty5.x
2. netty可以运用在那些领域?
- 分布式进程通信
例如: hadoop、dubbo、akka等具有分布式功能的框架,底层RPC通信都是基于netty实现的,这些框架使用的版本通常都还在用netty3.x
- 分布式进程通信
- 游戏服务器开发
最新的游戏服务器有部分公司可能已经开始采用netty4.x 或 netty5.x
- 游戏服务器开发
二、依赖
|
|
三、启动Netty服务端
|
|
nettyServer的初始化基本是这样的,可以参考一下注释,不是很复杂,应该是封装的比较好,可以看一下Dubbo对于Netty的服务端是差不多的,就是一些细节不太一样。
|
|
四、Handler:处理客户端
|
|
基本说明:
SimpleChannelHandler处理消息接收和写:
messageReceived接收消息
解析消息的方法有两种,详见代码注释,注意如果想直接使用string,请在NettyServer加入new StringDecoder(),具体可以参考StringDecoder的decode方法。
发送消息的方法有两种,详见代码注释,注意如想想直接使用string,请在NettyServer加入new StringEncoder(),具体可以参考StringEncoder的encode方法。channelConnected新连接(例如:用来检测IP是否是黑名单)
- channelDisconnected链接关闭,(例如:用户断线的时候清楚用户的缓存数据等)
五、使用Telnet测试
windows7默认没有提供telnet,需要配置一下既可。具体可以参考:http://jingyan.baidu.com/article/870c6fc3cd6fa9b03fe4bee4.html
使用方法,cmd或者powershell
- 连接服务端1telnet ip port
- 发送命令
连接后,使用ctrl + ]就可以发送命令
服务端的日志
1234netty server start!client channelConnectedclient messageReceivedstring message is hello接受命令
使用ctrl + ]进入后,回车即可看到服务端返回的消息