文章目录
netty版本
- netty版本:
io.netty:netty-all:4.1.33.Final
长连接
- 由于服务器和客户端的交互全是通过
Channel
(通道)的读写操作来实现的,所以这个应用逻辑层必须要做的一件事就是对Channel
的管理,另外和Channel
紧密相关的就是客户端设备和用户,那么到底是用设备绑定Channel
,还是用用户绑定Channel
,这个问题须得考虑清楚。 - 第一种,使用长连接通道不断开的形式进行通信,也就是服务器和客户端的通道一直处于开启的状态。如果服务器性能足够好,并且我们的客户端数量也比较少的情况下,是适合使用长连接的通道。
- 第二种,采用短连接方式,一次性批量提交数据,也就是我们会把数据保存在本地临时缓冲区或者临时表里。当达到数量时,就进行批量提交;或者通过定时任务轮询提交。这种情况是有弊端的,就是无法做到实时传输。如果应用程序对实时性要求不高,可以考虑使用。
- 第三种,采用一种特殊的长连接。特殊在哪里呢?在指定的某一时间之内,服务器与某台客户端没有任何通信,则断开连接,如果断开连接后,客户端又需要向服务器发送请求,那么再次建立连接。这里有点
CachedThreadPool
的味道。 - Netty中的每一个
Socket
连接就是一个Channel
,只需要将所有连接的客户端Channe