一、Netty 的启动与管道初始化工厂
(1)导入netty的依赖包
代码结构图:
所有的代码可以在git上获取。地址:https://github.com/tudouANDdigua/UnityJavaServer.git
(2)netty启动
- 配置group(监听工作组,IO工作组)
- 配置channel():采用NIO: NioServerSocketChannel
- 配置最多可同时接入的连接请求数目
option(ChannelOption.SO_BACKLOG, 1024)
- 配置Channel的初始化工厂
IO 事件处理对象(连接进来,连接断开,有数据可读, 连接异常)
数据编码解码器 - 绑定服务器端口开启监听。注意:端口不要被占用
(3)连接测试
- 接入连接
客户端会发起连接, netty会建立建立
调用初始化工厂里面一个initChannel方法,来初始化配置新建立的channel
调用IO Event对象channelActive
用户接入进来了 - 接收数据
1:当连接建立以后,channel建立好以后,我们的客户端发送数据过来,channel就会拿到数据
2: netty就会去找配置channel时候解码器对象,StringDecoder
3:netty就会遍历list out, 通知管道的ioEvent处理对象,调用这个对象的
我们就收到了某个客户端给我们发送的message - 接收数据
发送数据
WriteAndFlush
1:写入一个对象给channel
2: channel 找管道里面的配置的编码对象
StringEncoder
3:调用编码器的编码函数,来将object对象—》二进制数据
4:底层给你发出去 - 连接断开
1: 管道会被中断,通知管道的IO Event处理对象,调用它的固定的函数
2: 通知IO Event 这个管道不可用了 - 客户端代码我采用node来写,node安装
node.js中文网
下载对应的就可以了