netty的长连接

websocket是解决http协议的缺陷
http协议是无状态基于请求和响应的协议
这种无状态的协议会出现一种问题,无法知道请求来自于哪个客户端,所以用cookie和session或者redis解决这种问题
服务端收到客户端的请求会进行处理,比如servlet的doget和dopost,处理完之后服务端就会构造出响应对象,response响应给客户端, 如果是基于http1.0的话,短连接,连接会立刻断掉,http1.1增加了keeplive 是一种长连接不是立即断掉

websocket一旦建立长链接之后
1.是一种真正意义上的长连接,全双工的数据传递
2.websocket是基于http协议的
3.虽然websocket是H5的一部分,但是在ios和Android也有支持

netty中所使用的websocket处理器

 pipeline.addLast(new HttpServerCodec());
            pipeline.addLast(new ChunkedWriteHandler());//以块的方式去写的处理器
            pipeline.addLast(new HttpObjectAggregator(8192));//netty对http请求是分段的每100 ,将这些段聚合起来成为一个完整的请求或者响应
            pipeline.addLast(new WebSocketServerProtocolHandler("/ws"));//这个处理器这个运行一个websocket 的服务器负责websocket 的握手
                //对于websocket来说数据都是以frame的形式来传递的 分为共6种

猜你喜欢

转载自blog.csdn.net/qq_38393471/article/details/89409030
今日推荐