Websoket 实时通讯

@TOC

一、什么是 websoket

  1. websoket 是一种协议,用于提供 低延迟、全双工长期运行 的链接

  2. 全双工

    • 通信的两个参与方可以同时发送和接受数据

    • 不需要等待对方的响应 | 传输完成

    • 通过建立全双工的持久连接,客户端和服务器之间实现实时通讯

  3. 总结:解决实时通信的问题

二、什么是实时通讯

  1. 传统通信:存在延迟,需要用户主动请求来获取更新数据

  2. 实时通信:消息传递、音视频通话、在线会议和实时数据传输等,可以实现即时的数据传输和交流,不需要用户主动请求或刷新来获取更新数据

三、心跳机制

  1. 为什么需要心跳机制

    • 为了保持 WebSocket 稳定的长连接,在连接建立之后,服务器和客户端之间通过心跳包来保持连接状态

    • 防止连接因为长时间没有数据传输而被切断

  2. 什么是心跳机制

    • 定期发送一个空数据帧,不包含任何实际数据,仅用来维持连接状态确保链接仍然有效

    • 避免长时间没有数据传输而被中断发送,后端收到后,返回一个心跳消息

    • 如果超过一定时间还没重置,说明后端主动断开了

四、优势

  1. 双向实时通信

    1. 允许在单个、长时间的连接上进行双向实时通信

    2. 在需要快速实时更新的项目里,比HTTP更加高效

  2. 降低延迟:链接建立便会保持开放,数据可以在客户端和服务器之间以比 HTTP 更低的延迟进行传输

  3. 更高效的资源利用:可以减少重复请求和响应的开销,因为它的连接只需要建立一次

五、限制

  1. 不提供加密功能:如果有安全上的需求,需采用其他方式来确保安全性,如: SSL 协议,设置黑白名单

  2. 不支持古老的浏览器:不支持IE10以前的版本。需要使用 AJAX 或者其他方式来进行替代

  3. 性能 :保持长连接需要服务器不断地维护和处理连接状态,需要优化性能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值