websocket 协议理解

WebSocket概述##

WebSocket是在单个的TCP连接上提供了全双工通信通道的协议,该协议于2011年作为RFC6455被正式标准化。WebSocket在Web服务器和浏览器端都需要做实现。如果没有WebSocket,为了实现即时通讯,可以采用的技术都是轮询(polling)。轮询是在特定的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的HTTP请求的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求,然而HTTP请求中头部会占用一定的开销,这种方式效率和实效性都不太好。而利用WebSocket,浏览器和服务器在基于HTTP协议完成握手后,在浏览器和服务器之间就形成了一条通信通道,他们之间就直接可以互相传送数据。在WebSocket 协议中,为我们实现即时服务带来了两大好处: 1) 头信息少,减少了系统的消耗。 2)服务器端推送,服务器不再被动的接收到浏览器的请求后才返回数据,而是在有新数据时就主动推送给浏览器。 通过这种方式,效率和实效性都得到了明显的提高,现在大部分浏览器都已经实现了对WebSocket协议的支持,当然使用WebSocket付出的代价是浏览器和服务器端要保留一个“有状态”的连接。

基于轮询机制和WebSocket的架构在实际项目中哪一种效率高,很难一概而论,因为这个跟实际的业务场景有关,最好的方法就是通过模拟实际的用户行为,对被测系统进行打压测试,然后观察被测系统的表现。采用轮询机制的系统,因为基于HTTP/HTTPS协议,现在有很多性能测试工具可以实现对这种系统进行测试。而基于WebSocket的性能测试则需要费一番功夫,不过幸运的是在开源软件生态日益完善的今天,这也不是什么难题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值