Netty之WebSocket解决方案

本文介绍了WebSocket作为服务器推送解决方案的优势,对比了长轮询和http流,指出WebSocket通过全双工通信和低延迟特性改进了之前的方案。WebSocket的生命周期包括打开、消息传递、错误处理和关闭事件,Netty提供了实现WebSocket的框架支持。
摘要由CSDN通过智能技术生成

一直以来,解决服务器有新数据时,立即将数据发送到客户端的方案种类繁多,例如“推送”或Comet。

实现Comet有两种方式:长轮询与http流
长轮询是短轮询的翻版,短轮询的方式是:页面定时向服务器发送请求,看有没有更新的数据。
而长轮询的方式是,页面向服务器发起一个请求,服务器一直保持tcp连接打开,知道有数据可发送。发送完数据后,页面关闭该连接,随即又发起一个新的服务器请求,在这一过程中循环。
短轮询和长轮询的区别是:短轮询中服务器对请求立即响应,而长轮询中服务器等待新的数据到来才响应,因此实现了服务器向页面推送实时,并减少了页面的请求次数。
http流不同于上述两种轮询,因为它在页面整个生命周期内只使用一个HTTP连接,具体使用方法即页面向浏览器发送一个请求,而服务器保持tcp连接打开,然后不断向浏览器发送数据。
Comet采用了Ajax。这种技术虽然可达到双向通信,但依然需要发出请求,而且在Comet中,普遍采用了长连接,这会导致大量服务器带宽和资源被占用。

最常用的一种是对服务器发起连接创建假象,被称为长轮询。利用长轮询客户端可以打开指向服务器的HTTP连接,而服务器会一直保持连接打开,直到发送响应。服务器值要实际拥有新数据,就会发送响应。
但是这些解决方案都存在一个共同的问题:由于HTTP协议的开销导致它们不适用于低延迟应用。
Http协议的弊端主要如下:

  • HTTP协议为半
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值