《java websocket》之 描述篇

WebSocket protocol 是HTML5一种新的协议。它实现了浏览器与服务器全双工通信(full-duplex)。一开始的握手需要借助HTTP请求完成。

Websocket 是全双工通讯(说白了就是俩都可以通讯,服务器也可以给客户端发消息,客户端也能给服务器发消息)。也是基于TCP的,效率是很高的,首先这个技术的底层选用,就决定了完全可以用wb这个技术做高并发应用,而且开发非常快!!代码非常简单!!最重要的是稳定性,扩展性等等都有保证,等会儿说为什么说都有保证。

WB 不同于TCP的三次握手。 WB是先进行一次HTTP请求,这个请求头不同于普通HTTP请求,等会贴出来讲解。然后服务器开始辨认请求头,如果是WB的请求头,则开始进行普通的TCP连接,即三次握手(不懂的TCP的,出门百度)。如果不是WB的HTTP请求头,那就是按普通的HTTP请求处理。

流程梳理: HTTP特殊请求(有个特殊的头) ---- 》 服务请接收判断 ----- 》 认出来了,确实是WB请求头,开启TCP 三次握手,建立连接后,和TCP一样了就------》没有认出来,不是WB的请求头,按普通HTTP请求处理。

为什么要用websocket
解决轮询问题,顾名思义就是轮回查询,轮询是在特定的的时间间隔(如每1秒),由浏览器对服务器发出HTTP request,然后由服务器返回最新的数据给客户端的浏览器。这种传统的HTTP request 的模式带来很明显的缺点 – 浏览器需要不断的向服务器发出请求,然而HTTP request 的header是非常长的,里面包含的有用数据可能只是一个很小的值,这样会占用很多的带宽(来源百度百科)。当AJAX技术的涌现(不懂AJAX出门百度),有人用AJAX实时一步刷新来改变,虽然可达到全双工通信,但依然需要发出请求,所以AJAX只适用于小事件的处理比较合适一些。但是websocket可以解决轮询的问题。
什么场景适合使用
可以满足很多很多的事情,贴几张功能图来简单展示:
1.及时通讯(大部分都是为了做这个功能才用的websocket)
即时通讯
2.计算在线人数,以及列表
在线人数
3.强制下线功能
图片描述图片描述
截图太累,我就不一一列举了,还有很多,自己开脑洞吧。

那么到这里你大概知道websocket是什么东西了,我的目标是搭建一个,可以支持百万并发量的即时消息服务,但是如果简历上有这么一条的话,那么你就会觉得月薪过万真的好少,所以跟着作者一步一步来完成高级技术的掌握者吧。

虽然现在我也不会,也毫无头绪,但是既然目标已经有了。那么这件事就完成百分之51了。

学习是一种信仰,分享是一种态度。


转自:慕课网

作者: 手插口袋_ 
链接:http://www.imooc.com/article/12399
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值