c# websocket 心跳重连_websocket基础

本文介绍了WebSocket协议的实时推送优势,包括与Ajax轮询的对比、协议特点和工作原理。详细讲解了WebSocket的握手过程、连接状态、心跳检测及断线重连的实现,提供了一个在Vue实例下创建和管理WebSocket连接的思路和代码示例。
摘要由CSDN通过智能技术生成

实时推送技术

  • 实时推送技术的实现大体有两种方式,Ajax轮询WebSocket
    • Ajax轮询 是通过设定特定的时间间隔(如:1s), 定时向服务器发送HTTP请求,从而获取数据,达到实时推送的效果。这种传统的形式有明显的缺点,就是客户端需要不断地向服务端发送请求,增加服务器压力
    • WebSocket 协议,能更好的节省服务器资源和带宽,并且能够更实时地进行通讯

efe417c5f8d89462b4bc747c476fe868.png

ws握手与数据传输 图片来源:菜鸟教程

简单介绍

HTML5 标准

  • HTML5 新增的协议

单个 TCP 连接

  • 在单个 TCP 连接上进行全双工(能够同一时候发送和接收)通讯的协议

基于HTTP进行链接

  • Webscoket 并不是全新的协议,而是利用了 HTTP 协议来建立连接(完成握手)
  • 一次握手,永久连接,双向数据传输
  • 通过查看浏览器的request这是一个以HTTP协议为基础的get请求,握手只会进行一次,随后便可以进行双向数据传递

不存在跨域的问题

  • webscoket 协议本身不要求同源策略,不存在跨域的问题,本身就跨域。
  • 但是,浏览器会发送 Origin 的 HTTP头 给服务器,服务器可以根据 Origin 拒绝这个 WebSocket 请求。所以,是否要求同源要看服务器端如何检查。

统一资源标识符

  • wswss
  • 按照HTML5标准是有对应关系的 HTTP -> ws; HTTPS -> wss

心跳检测

  • 链接时间长无数据来往会自动断线,浏览器不
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值