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;#设置代理服务器读取后端服务器响应的超时时间为1Hproxy_connect_timeout 60s;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C语言】static关键字修饰局部变量、全局变量、函数

【C语言】static关键字修饰局部变量、全局变量、函数 文章目录 [TOC](文章目录) 前言一、static关键字修饰局部变量1.未加入static关键字2.加入static关键字3.小结 二、static关键字修饰全局变量1.未加入static关键字2.加入static关键字3.小结 三、static关键字修饰函数1.未加入…

无人机飞手执照培训费用较高原因分析

无人机飞手执照培训费用较高的原因可以归结为多个方面,以下是对这些原因的具体分析: 一、课程内容的全面性和专业性 无人机飞手执照培训涵盖了从无人机基础知识到高级飞行技巧、从组装调试到故障维修的多个方面。这种全面性和专业性要求培训机构提供高…

具备技术一:Linux定时器

一、接口 1、创建定时器 timerfd_create 返回值:返回定时器文件描述符。原理:每隔一个超时时间系统会给描述符写入一个8字节数据代表已经超时几次。 clockid: CLOCK_REALTIME:以系统时间作为基准值(若改变系统时间就…

SoapUI、Jmeter、Postman三种接口测试工具的比较分析

本报告从多个方面对接口测试的三款常用工具进行比较分析,以便于在特定的情况下选择最合适的工具,或者使用自己编写的工具。(不同工具定位不同,我们只是主要从接口功能测试的角度进行分析)。 报告中如果有哪些不合适的地…

AI开发者工具的双子星:Cursor与ChatGPT Canvas的区别

01—Cursor:沉浸式的开发体验 Cursor是一款旨在为开发者提供无缝编程体验的工具。它将AI的功能深度嵌入到开发者熟悉的环境中,便于在编码过程中获得即时帮助。开发者无需离开自己的操作界面,AI就能自动为其提供代码补全、错误检查和优化建议…

Android shape 设置solid透明度

Android shape 设置solid透明度 在Android中&#xff0c;您可以通过在shape drawable的<solid>标签中指定透明度来设置透明度。透明度是通过一个8位的值来指定的&#xff0c;其中0表示完全透明&#xff0c;255表示完全不透明。 要设置透明度&#xff0c;您需要使用#AAR…

什么是单片机?

单片机&#xff08;Single-Chip Microcomputer&#xff09;是一种集成电路芯片&#xff0c;是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能&#xff08;可能还包括显示驱动电路、脉宽…

zabbix报警设置

文章目录 I 通过脚本媒介,调用钉钉电话API。配置脚本设置脚本媒介II 配置发送邮件的信息案例:配置163邮箱配置接收媒介创建动作知识扩展DING 2.0 发钉钉钉机器人自定义webhookzabbix执行远程命令I 通过脚本媒介,调用钉钉电话API。 zabbix可以通过脚本调用钉钉电话API,需要…

哪些因素会影响 FMEA 实施的效果?

在探讨哪些因素会影响FMEA&#xff08;潜在失效模式及后果分析&#xff09;实施效果的问题时&#xff0c;我们不得不深入剖析FMEA的核心理念、实施流程及其在企业质量管理中的应用实践。FMEA作为一种系统性的预防性工具&#xff0c;旨在识别产品或过程中潜在的失效模式及其影响…

WriteUp - 江苏省领航杯 CTF 2024

文章目录 一、前言二、MISC高职组1、签到2、BASE拓展 3、PG 本科组1、签到2、veee3、seeme 三、WEB高职组1、aio2、robots3、web_sql_xxe 本科组1、web_sql_xxe2、提权3、acxi拓展 四、CRYPTO高职组1、兔兔2、1zRSA 本科组1、兔兔2、Evaluate 五、REVERSE高职组1、easyre2、16q…

云计算第四阶段 CLOUD2周目 01-03

国庆假期前&#xff0c;给小伙伴们更行完了云计算CLOUD第一周目的内容&#xff0c;现在为大家更行云计算CLOUD二周目内容&#xff0c;内容涉及K8S组件的添加与使用&#xff0c;K8S集群的搭建。最重要的主体还是资源文件的编写。 (*^▽^*) 环境准备&#xff1a; 主机清单 主机…

【Vue】Vue(八)Vue3.0 使用ref 和 reactive创建响应式数据

ref 创建&#xff1a;基本类型的响应式数据 **作用&#xff1a;**定义响应式变量。语法&#xff1a;let xxx ref(初始值)。**返回值&#xff1a;**一个RefImpl的实例对象&#xff0c;简称ref对象或ref&#xff0c;ref对象的value属性是响应式的。注意点&#xff1a; JS中操作…

前端开发笔记--html 黑马程序员1

文章目录 前端开发工具--VsCode前端开发基础语法VsCode优秀插件Chinese --中文插件Auto Rename Tag --自动重命名插件open in browserOpen in Default BrowserOpen in Other Browser Live Server -- 实时预览 前端开发工具–VsCode 轻量级与快速启动 快速加载&#xff1a;VSCo…

10个Python自动化脚本,让日常任务轻松便捷!

Python 以其简单易学的语法和强大的库支持,使得它成为实现自动化任务的理想语言.无论是个人日常工作,还是企业的流程优化,Python 都可以通过自动化脚本帮助节省时间、提升效率.以下是10个令人不可思议的 Python 自动化脚本,涵盖了从文件管理、网络爬虫到数据处理的各个领域. 1…

深度学习-24-基于keras的十大经典算法之残差网络ResNet

文章目录 1 残差网络(ResNet)1.1 ResNet简介1.2 ResNet结构2 模型应用2.1 加载数据2.2 构建模型SimpleResNet2.2.1 simple_resnet_block2.2.2 SimpleResNet2.2.3 实例化模型2.2.4 模型训练2.2.5 模型预测2.3 构建模型ResNet182.3.1 residual_block2.3.2 ResNet182.3.3 训练模型…

设计模式——门面模式 | 外观模式

哈喽&#xff0c;各位盆友们&#xff01;我是你们亲爱的学徒小z&#xff0c;今天给大家分享的文章是设计模式的——门面模式。 文章目录 定义通用类图1.通用结构2.优点3.缺点 使用场景注意事项1.一个子系统可以有多个门面2.门面不参与子系统内的业务逻辑 定义 定义&#xff1a;…

python画图|两个Y轴共享X轴

【1】引言 在前述学习中&#xff0c;对使用matplotlib模块输出图形已经非常熟练&#xff0c;但常见的画图方式并未穷尽&#xff0c;如两个Y轴共享X轴就没有探索过。 对此&#xff0c;我进行了一些学习&#xff0c;获得一些心得&#xff0c;在此和大家共享。 【2】官网教程 …

鸿蒙开发(NEXT/API 12)【使用fetchsync发送同步网络请求】远场通信服务

场景介绍 发送一个同步HTTP请求&#xff0c;也可以设置请求头和请求体等参数&#xff0c;并返回来自服务器的HTTP响应。常用于获取资源&#xff0c;支持通过拦截器来处理请求和响应。 接口说明 接口名描述Rcp_Response *HMS_Rcp_FetchSync(Rcp_Session *session, Rcp_Reques…

【Linux第一弹】- 基本指令

&#x1f308; 个人主页&#xff1a;白子寰 &#x1f525; 分类专栏&#xff1a;重生之我在学Linux&#xff0c;C打怪之路&#xff0c;python从入门到精通&#xff0c;数据结构&#xff0c;C语言&#xff0c;C语言题集&#x1f448; 希望得到您的订阅和支持~ &#x1f4a1; 坚持…

Window7上微信小程序开发工具上,小程序界面空白

目录 背景 解决方案 背景 微信小程序开发工具不断升级&#xff0c;自从1.06后不再支持Window7系统。安装1.05版本开发工具软件&#xff0c;新建小程序后&#xff0c;小程序界面空白&#xff0c;真机显示正常&#xff0c;但是对于开发者来说很不友好。 解决方案 点击“设置-&…