Websocket 因 1006 错误而断开连接,无原因

2024-01-27

我正在我的网页游戏中记录断开连接。似乎 75% 的会话因代码 1001(正常)而断开连接,25% 的会话因代码 1006(错误)而断开连接。https://www.rfc-editor.org/rfc/rfc6455 https://www.rfc-editor.org/rfc/rfc6455

有时,关于错误原因,我会看到以下文字:

CloudFlare WebSocket 代理重新启动

但 1006 次断开连接中的大多数根本没有给出任何原因。玩家们毫无理由地断开连接。这通常发生在玩家正在积极玩游戏的 5-30 分钟内。

我的设置有这些:

  • Node.js
  • Express.js
  • 云耀
  • 数字海洋
  • Docker
  • https://github.com/websockets/ws https://github.com/websockets/ws
  • SSL
  • Nginx 超时 = 3600 秒
  • Ping/Pong 存活 = 30 秒

我的问题是:

  1. 如何更好地调试这个问题?
  2. 可能导致此问题的常见情况有哪些?

出现此特定错误的原因是 Cloudflare 更新了其 SSL、防火墙、Nginx、物理服务器的软件或配置。

系统中几乎任何正在更新的堆栈都会踢出您的 websocket。你有2个解决方案:

  1. Websockets 不使用 Cloudflare
  2. 具有自动重连逻辑
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Websocket 因 1006 错误而断开连接,无原因 的相关文章

随机推荐

  • WMI、过去的负 CPU 使用率值和 Timestamp_Sys100NS

    我正在使用 WMI 和 NET 来监控一些机器System Management东西 我正在使用的查询是这样的 SELECT Timestamp Sys100NS PercentProcessorTime FROM Win32 PerfRa
  • 根据一天中的时间更改背景(使用 JavaScript)

    好的 我有两个不同的背景 jpg 我想根据一天中的具体时间将它们用作背景 我想要早上 7 点到晚上 8 点的阳光背景和晚上 8 点到早上 7 点的夜间背景 我正在处理一个远程 html 文件 并且我将背景和图形存储在与实际 html 文件不
  • 如何将我的分叉存储库的部分更改作为补丁提交?

    我从 GitHub 分叉了一个存储库并进行了一系列更改 然后我发现我在一个文件中的修改之一可以是原始存储库的某个问题的补丁 但作者不想合并我的其他修改 所以我不想直接发送拉取请求 我认为再次分叉并修改该文件以制作补丁 然后发送拉取请求似乎不
  • Twitter 引导表分页

    我目前正在引导程序中处理表 它工作得很好 目前我遇到分页问题 我试图将数据动态推入表中 一旦数据变得太大 表就会向下扩展 如何对表进行分页 如果你想在 Bootstrap 中使用 Datatables 你需要初始化它 Table initi
  • 将 .jks 转换为 p12

    我怎样才能转换 jks文件到p12 jks是一个java密钥存储文件 那么我如何将它转换为p12 format 将 JKS 文件转换为 PKCS12 格式 Java 1 6 x 及更高版本 keytool importkeystore sr
  • 如何最好地从截断正态分布中获取样本?

    我已经做了一些搜索 但我似乎无法找到从截断正态分布中采样的合理方法 没有截断我正在做 samples np random normal loc x scale d for x d in zip X D X and D是浮动列表 目前我正在实
  • WIX:多个功能/文件夹的重复 ID 问题

    我是 Wix 的新手 正在创建一个多功能 Wix 项目 我们的产品有 4 个模块 每个模块都必须作为一项功能包含在 Windows 安装程序中 但所有功能都共享相同的文件夹结构 我正在使用命令行来构建我的 Wix 项目 将每个模块收集到不同
  • 使用 JsonWebToken 时遇到问题; JsonWebToken 错误:必须提供 JWT

    我正在使用 Vue 构建我的第一个 SPA 项目 我决定使用 NodeJS 作为后端 但是 我在使用 JsonWebToken 构建登录功能时遇到了麻烦 我写了一些代码来查看 JWT 如何工作 当我尝试查看 JWT 如何验证时 服务器给了我
  • 如何将全局自定义样式应用于android.support.design.widget.TextInputEditText?

    我有我的AppTheme定义于style xml我在其中为所有应用程序全局应用自定义样式TextView EditText Button etc 现在我想做同样的事android support design widget TextInpu
  • Visual Studio 2019 Xamarin.Forms 项目中未命中断点

    我正在开发 Xamarin Forms 添加 我不知道昨天是否在 Visual Studio 2019 上更新 16 5 1 是原因 但是当我处于调试模式时 在 Android 项目上与我的设备连接时断点不会命中 有趣的是我的应用程序运行正
  • Bootstrap colorpicker 基本示例不起作用

    我想为 bootstrap 使用颜色选择器插件 https farbelous io bootstrap colorpicker index html https farbelous io bootstrap colorpicker ind
  • 迭代c中的结构体

    我正在编写一个与此代码类似的单元测试 并且我正在尝试在设置值时测试它们 以便我知道发生了什么 当我运行以下代码时 我不明白为什么 ptr 值没有设置为 1 相反 当我运行它时 它给出的输出为 10 64 0 0 任何解释或建议将不胜感激 i
  • VBS 中的 MSGbox 根据变量值进行更新

    只是想知道我如何拥有一个 MSgbox 来显示不断变化的变量值 基本上 一个数字每次循环时都会添加一个 我想在不必打开一百万个窗口的 MSGbox 中显示它 解决方法是使用PopUp Set objShell WScript CreateO
  • 如何将值查询集的值追加到数组?

    我的观点 py from django db models import Count def test1 request states Loksabha objects values state distinct state terms L
  • Ionic 导航栏:标题未在 Android 设备上居中

    我对 Ionic 很陌生 但我已经喜欢它了 我想用nav bar所以我实现了以下index html
  • 编写不使用循环索引的 for 循环的 Pythonic 方法[重复]

    这个问题在这里已经有答案了 这与以下代码有关 该代码使用 for 循环生成一系列随机偏移量以供程序中其他地方使用 该 for 循环的索引未使用 这导致 Eclipse PyDev 将 有问题的 代码突出显示为警告 def RandomSam
  • 如何在 Actionscript 3 中将十六进制转换为十进制?

    如何在 Actionscript3 中将十六进制 字符串 转换为十进制 int Number int and uint类有toString 接受的方法radix作为参数 radix指定用于数字到字符串转换的数字基数 从 2 到 36 如果不
  • 如何从 DOM 中删除 element.nativeElement?

    我尝试了这样的方法 ViewChild draggable private draggableElement ElementRef this draggableElement nativeElement remove HTML div Bl
  • MVC3 ajax 将多个复选框值发送到控制器

    我正在尝试使用 MVC3 来完成以下任务 我有一个包含多个值的表 使用ajax我希望能够选择作为表一部分的删除复选框 对于任意数量的行 使用ajax将结果发布到控制器进行处理 我目前遇到的问题是我无法让控制器接受来自 ajax post 的
  • Websocket 因 1006 错误而断开连接,无原因

    我正在我的网页游戏中记录断开连接 似乎 75 的会话因代码 1001 正常 而断开连接 25 的会话因代码 1006 错误 而断开连接 https www rfc editor org rfc rfc6455 https www rfc e