websocekt原理及实现过程

WebSocket协议提供了一种全双工、低延迟的通信方式,相较于HTTP的轮询和长轮询,能有效节省带宽并实现高效双向通信。WebSocket通过一次HTTP握手后建立持久连接,适用于实时应用如聊天、股票交易等。在JavaScript中,可以通过创建WebSocket对象、监听onopen、onmessage、onerror和onclose事件以及使用send方法发送和关闭连接。
摘要由CSDN通过智能技术生成

1.websocket协议:

  • 可以将 WebSocket看成是一种类似TCP/IP的socket技术;此socket在Web应用中实现,并获得了和TCP/IP通信一样灵活方便的全双向通信功能。
  • WebSocket协议由RFC 6455定义。协议分为两个部分: 握手阶段和数据通信阶段。
  • WebSocket为应用层协议,其定义在TCP/IP协议栈之上。
  • WebSocket连接服务器的URI以”ws”或者”wss”开头。ws开头的默认TCP端口为80,wss开头的默认端口为443。
  • Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说。

2.websocket的优点:

1)通过第一次HTTP Request建立了连接之后,后续的数据交换都不用再重新发送HTTP Request,节因此它省了带宽资源;
2) WebSocket的连接是双向通信的连接,在同一个TCP连接上,既可以发送,也可以接收;
3)具有多路复用的功能(multiplexing),也就是说几个不同的URI可以复用同一个WebSocket连接。

3.websocket的作用:

在说明白websocket的作用之前,还是先弄清楚轮询以及long poll的好,如此才能更好的对比出websocket的作用以及他的好处。

a.轮询:

轮询呢,顾名思义就是每隔几一段时间去做一件事情,这里就是每隔一定的时间,客户端就向web服务器发一次请求,请求当前的新数据。

轮询却是是一个合理的方案,但是有时候他的效率就不是很高,因为轮询就意为这要向服务器发起请求,要不断的建立新的连接,而这样做只是为了知道是否有新的数据,试想一下如果有成千上万的用户都这样轮询,时间一长服务器受得了吗?

是不是不太理解?O=O,,,,,没关系,简单的说,,,,

比如:你喜欢某个蛋糕店,于是在那里办了个会员卡,想着只要蛋糕出新你就去买,,于是就出现如下对话(前提,这个老板有健忘症,放下你的会员卡就忘记你是谁了):

你(Request)将会员卡递给老板:老板,有没有出新蛋糕啊?
老板(Response)检查了会员卡:没有。

,,,,,过了一天,,,,
你(Request)将会员卡递给老板:老板,有没有出新蛋糕啊?
老板(Response)检查了会员卡:没有,没有。

,,,,,又过了一天,,,,
你(Request)将会员卡递给老板:老板,有没有出新蛋糕啊?
老板(Response)检查了会员卡:没有。

,,,,,又过了一天,,,,
你(Request)将会员卡递给老板:老板,有没有出新蛋糕啊?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值