websocket初识

什么是websocket

学习链接:
https://baijiahao.baidu.com/s?id=1683139600979891676

WebSocket是一种在单个TCP连接上进行全双工通信的协议。
在WebSocket API中,浏览器和服务器只需要完成一次握手(不是指建立TCP连接的那个三次握手,是指在建立TCP连接后传输一次握手数据),两者之间就直接可以创建持久性的连接,并进行双向数据传输。
在这里插入图片描述

WebSocket和http一样,都是处于OSI模型中的最高层:应用层。
在这里插入图片描述

基于TCP传输协议,并复用HTTP的握手通道:

1、WebSocket可以在浏览器里使用
2、支持双向通信
3、使用很简单

请求的地址: ws和wss

一般是:ws://***,或者是使用了SSL/TLS加密的安全协议wss:,用来标识是WebSocket请求。

WS(WebSocket )是不安全的 ,容易被窃听,因为任何人只要知道你的ip和端口,任何人都可以去连接通讯。
WSS(Web Socket Secure)是WebSocket的加密版本。

ws 类似 http
wss 类似 https

功能

1.功能
1)通知功能:

保持一个长连接,当服务端游新的消息,能够实时的推送到使用方。像知乎的点赞通知、评论等,都可以使用WebSocket通信。

某些使用H5的客户端,为了简化开发,也会使用WebSocket进行消息的通知,由于它是实时推送的,会有更好的用户体验。

2)数据收集:

一些次优级别的数据,比如行为日志、trace、异常执栈收集等,都可以开辟专门的WebSocket通道进行传输。这能够增加信息的集中度,并能及时的针对用户的行为进行合适的配置推送。由于大多数浏览器内核都支持,它将使客户端APM编程模型变得简单。

3)加密 && 认证:

虽然使用Fiddler、Charles等能够抓到很多WebSocket包。但如果同时开启SSL,传输加密后的二进制数据,会大幅增加破解的成本,会安全的多。

4)反向控制钩子:

这个…由于是双工长连接,服务端完全可以推送一些钩子命令,甚至直接是代码,在客户端进行执行。比如截个屏,录个音,种个小马。用户只要通过了授权申请,剩下的就随你发挥了。

我所在的公司是用来实现数据的即时通信。

websocket通过心跳保持连接

心跳重连原因
在使用websocket过程当中,可能会出现网络断开的状况,好比信号很差,或者网络临时性关闭,这时候websocket的链接已经断开, 而浏览器不会执行websocket 的 onclose方法,咱们没法知道是否断开链接,也就没法进行重连操做。 若是当前发送websocket数据到后端,一旦请求超时,onclose便会执行,这时候即可进行绑定好的重连操做。 所以websocket心跳重连就应运而生。

学习链接:
https://wenku.baidu.com/view/31c5b1cc142ded630b1c59eef8c75fbfc77d947b.html

http://www.javashuo.com/article/p-bwdoumtd-nu.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值