WebSocket状态码及异常报错1006

文章目录

  • 1.WebSocket协议简介
  • 2.WebSocket状态码的作用:
  • 3.WebSocket状态码1006详解
    • 1.问题原因
    • 2.解决方案


1.WebSocket协议简介

WebSocket协议是一种基于TCP的协议,它通过在浏览器和服务器之间建立一条持久的双向通信通道,实现了实时的数据传输。与HTTP协议相比,WebSocket协议具有以下特点:

双向通信:WebSocket协议允许服务器主动向客户端推送数据,客户端也可以向服务器发送数据。
实时性:WebSocket协议可以实现实时的数据传输,无需频繁建立和关闭连接。
低延迟:由于WebSocket协议使用的是长连接,可以减少网络传输的延迟。
节省带宽:WebSocket协议使用的是二进制数据格式,相比于HTTP协议的文本数据格式,可以节省带宽。
在这里插入图片描述

2.WebSocket状态码的作用:

WebSocket断开时,会触发CloseEvent, CloseEvent会在连接关闭时发送给使用 WebSockets 的客户端. 它在 WebSocket 对象的 onclose 事件监听器中使用。
CloseEvent的code字段表示了WebSocket断开的原因。
可以从该字段中分析断开的原因。

CloseEvent有三个字段需要注意, 通过分析这三个字段,一般就可以找到断开原因:

  • CloseEvent.code: code是错误码,是整数类型
  • CloseEvent.reason: reason是断开原因,是字符串
  • CloseEvent.wasClean: wasClean表示是否正常断开,是布尔值。一般异常断开时,该值为false

在这里插入图片描述

3.WebSocket状态码1006详解

状态码1006表示连接已关闭,无法建立连接。具体含义如下:

  • 当客户端或服务器在建立WebSocket连接时发生异常,连接将被关闭,状态码1006将被返回。
  • 通常情况下,状态码1006表示网络连接中断、服务器宕机或其他无法建立连接的错误。

与其他状态码相比,状态码1006的特点是无法建立连接,通常是由于网络问题或服务器故障引起的。解决状态码1006的常见方法包括:

  • 检查网络连接是否正常。
  • 检查服务器是否正常运行。
  • 检查服务器配置是否正确。

1.问题原因

出现此报错通常和代理层不支持或者未开通websocket协议长连接导致。

在这里插入图片描述

如果出现心跳连接几次后断开连接报错1006的情况原因为:

建立连接后,还没等收到心跳信息(隔30s才会收到)时,nginx配置的proxy_read_timeout 就已经超时了。
解决方法为: proxy_read_timeout 1h;#设置代理服务器读取后端服务器响应的超时时间为1H

2.解决方案

WebSocket 和HTTP虽然是不同协议,但是两者“握手”方式兼容。通过HTTP升级机制,使用HTTP的Upgrade和Connection协议头的方式可以将连接从HTTP升级为WebSocket。

location / {
     proxy_set_header Host $host;
     proxy_set_header X-Real-IP $remote_addr;
     proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;  #添加支持websocket协议
     proxy_set_header Connection upgrade;      #添加支持websocket协议
     proxy_pass http://server-9003;
     proxy_read_timeout 1h;#设置代理服务器读取后端服务器响应的超时时间为1H
     proxy_connect_timeout 60s;
  }
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/896136.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Web,RESTful API 在微服务中的作用是什么?

大家好,我是锋哥。今天分享关于【Web,RESTful API 在微服务中的作用是什么?】面试题?希望对大家有帮助; Web,RESTful API 在微服务中的作用是什么? 在微服务架构中,Web 和 RESTful …

NVIDIA 发布适用于网络安全的 NIM Blueprint

德勤使用适用于容器安全的 NVIDIA NIM Agent Blueprint 帮助企业利用开源软件构建安全的 AI。 文章目录 🙊 德勤使用 NVIDIA AI 保障软件安全🙊 通过生成式 AI 保障软件安全🙊 适用于网络安全成功的蓝图🎠 什么是 NVIDIA NIM Agen…

javaWeb项目-ssm+jsp高校毕业生就业满意度调查统计系统功能介绍

本项目源码(点击下方链接下载):java-ssmjsp毕业生就业满意度调查系统实现源码(项目源码-说明文档)资源-CSDN文库 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端&…

Java使用原生HttpURLConnection实现发送HTTP请求

Java 实现发送 HTTP 请求,系列文章: 《Java使用原生HttpURLConnection实现发送HTTP请求》 《Java使用HttpClient5实现发送HTTP请求》 《SpringBoot使用RestTemplate实现发送HTTP请求》 1、HttpURLConnection 类的介绍 HttpURLConnection 是 Java 提供的…

字幕怎么自动生成?教你5种视频加字幕方法

在这个短视频时代,视频内容已成为传播信息、娱乐大众的重要载体。而字幕作为视频不可或缺的一部分,不仅能够提升观众的观看体验,还能跨越语言障碍,让所有观众都能享受视频的魅力。但怎么给视频加上字幕呢?下面给大家分…

图像及视频的基本操作

文章目录 一、认识计算机中的图像二、图像数据的读取三、数据读取-视频四、图像的其他操作 一、认识计算机中的图像 一张彩色图片是由很多个像素点组合而成的,而一个像素点是由R G B三个通道组成。RGB代表红色(Red)、绿色(Green&a…

Linux系统基础-文件系统

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux系统基础-文件系统 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. 回顾C语言…

RabbitMQ进阶_可靠性

文章目录 一、 发送者的可靠性1.1、 生产者重试机制1.2、 生产者确认机制1.2.1、确认机制理论1.2.2、确认机制实现1.2.2.1、定义ReturnCallback1.2.2.2、定义ConfirmCallback 二、 MQ的可靠性2.1、 数据持久化2.1.1、 交换机持久化2.1.2、 队列持久化2.1.3、 消息持久化 2.2、 …

R语言机器学习算法实战系列(四)随机森林算法+SHAP值 (Random Forest)

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍教程下载数据加载R包导入数据数据预处理数据描述特征选择数据切割调节参数构建模型预测测试数据评估模型模型准确性混淆矩阵模型评估指标ROC CurvePRC Curve特征的重要性模型解释保…

C#/.NET/.NET Core技术前沿周刊 | 第 9 期(2024年10.07-10.13)

前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录、追踪C#/.NET/.NET Core领域、生态的每周最新、最实用、最有价值的技术文章、社区动态、优质项目和学习资源等。让你时刻站在技术前沿,助力技术成长与视野拓宽。 欢迎投稿、推荐…

MinIO快速入门:开启你的文件存储之旅

在现代应用中,文件存储服务是至关重要的组件之一。像腾讯云的COS(对象存储服务)等云存储服务提供了丰富的功能,但随之而来的云端费用也是开发者无法忽视的问题。本文将介绍一款开源、高性能的对象存储服务——MinIO,它…

【含开题报告+文档+PPT+源码】基于SSM框架的诗词吟诵知识学习系统的设计与实现

开题报告 随着信息技术的迅猛发展和互联网的普及,在线教育逐渐成为现代教育的重要形式。在线学习平台以其便捷性、灵活性和个性化等特点,受到广大师生的青睐。特别是在线吟诵知识学习,已经成为许多学生提升自我修养、陶冶情操的重要途径。青…

基于华为云CodeArts Repo和流水线门禁的分支合并与部署

本文分享自华为云社区《【开发者空间实践】基于Repo和流水线门禁的分支合并与部署-云社区-华为云》 一、案例介绍 流水线(CodeArts Pipeline)提供可视化、可编排的CI/CD持续交付软件生产线,帮助企业快速转型,实现DevOps持续交付高…

FastApi SQLAlchemy SQLite

FastApi fastapi是一个用于构建API 的现代、快速(高性能)的web框架,它是建立在Starlette和Pydantic基础上的。 Pydantic是一个基于Python类型提示来定义数据验证、序列化和文档的库,Starlette是一种轻量级的ASGI框架/工具包&…

Qt编写的modbus模拟器/支持网络和串口以及websocket/支持网络rtu

一、使用说明 1.1 设备模拟-Com 第一步,填写要模拟的设备地址,0表示自动处理,也就是收到什么地址就应答什么地址。第二步,填写对应的串口号和波特率。第三步,单击打开串口,成功后会变成关闭串口字样。单击…

智慧公厕厂家:智慧公厕建设推动城市公厕智能化变革

随着科技的不断进步,智慧公厕厂家正以创新之力推动着城市公厕的智能化变革。 一、提升用户体验 智慧公厕为使用者带来了前所未有的便利。通过实时显示厕位使用情况,避免了旅客的无效排队,节省了时间。感应式设备如水龙头、洗手液等&#xff…

工业数据采集网关如何与设备进行连接?天拓四方

在工业自动化与智能化日益普及的今天,工业数据采集网关成为了连接各种工业设备与数据中心的桥梁。 一、工业数据采集网关的作用 工业数据采集网关,作为工业自动化系统的核心组成部分,负责实时采集、处理和传输来自各种工业设备的数据。它能…

RS232和RS485

文章目录 RS232和RS485编程与UART一摸一样RS232RS485 前情提要:UART的缺点 电气接口不统一 UART只是对信号的时序进行了定义,而未定义接口的电气特性 电压电平不兼容 UART通信中通常使用处理器的电平(如TTL电平),但不…

【Vue】Vue3.0(十三)中标签属性ref(加在普通标签上、加在组件标签上)、局部样式

上篇文章: 【Vue】Vue3.0 (十二)、watchEffect 和watch的区别及使用 🏡作者主页:点击! 🤖Vue专栏:点击! ⏰️创作时间:2024年10月18日20点56分 文章目录 基本…

主键 外键

主键 外键 在关系型数据库中,主键(Primary Key)和外键(Foreign Key)是用于维护数据完整性和建立表之间关系的重要概念。 主键(Primary Key) 定义: 主键是一个或多个列的组合,其值能…