如何捕获 WebSocket 连接中断?

2023-11-27

在 Firefox 中(至少),如果你按 ESC,那么它将关闭所有打开的 WebSockets 连接。 我需要捕获该断开连接,并在再次可用后尝试重新连接。

这是我尝试实现的代码示例,但我无法弄清楚如何捕获错误并允许我优雅地处理它。

看一下代码:http://jsfiddle.net/w5aAK/

var url = "ws://echo.websocket.org";
    try {
        socket = window['MozWebSocket'] ? new MozWebSocket(url) : new WebSocket(url);
        socket.onopen = function(){
            console.log('Socket is now open.');
        };
        socket.onerror = function (error) {
            console.error('There was an un-identified Web Socket error');
        };
        socket.onmessage = function (message) {
            console.info("Message: %o", message.data);
        };
    } catch (e) {
        console.error('Sorry, the web socket at "%s" is un-available', url);
    }

setTimeout(function(){
    socket.send("Hello World");
}, 1000);

打开控制台并观察输出。

我在这里做错了什么,还是因为连接在 JS 脚本的范围之外运行而无法实现?

任何输入都会有帮助。

Thanks!


您可以将处理程序附加到socket.onclose事件。当您按下 ESC 键并且连接中断时,它将被调用。

See: http://jsfiddle.net/w5aAK/1/

目前无法解决的一个问题是输出到控制台的中断错误。恐怕目前还没有办法捕捉到这一点。

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

如何捕获 WebSocket 连接中断? 的相关文章

随机推荐

  • onClick 事件未触发 |安卓

    我制作了一个非常简单的测试应用程序 其中包含一项活动和一种布局 这onClick第一次按下时不会触发 正如它应该的那样 活动 package com example mytest import android os Bundle impor
  • 无法 docker pull - 连接被拒绝

    我正在 ubuntu virtualbox 中从 docker 运行以下命令 并收到连接被拒绝错误 我位于公司代理后面 并配置了环境变量以使用代理以及用户名和密码 我还尝试使用代理链 root mbak1 VirtualBox sudo p
  • 有没有办法在 JSP 中填充地图?

    例如
  • 什么是“此处需要”错误

    它位于我的 Eclipse Problems 视图中 代码编译正常 但出现错误 required from here 指向一些 boost 头文件和行state data const current state interlocked co
  • 如何测试 Haskell 中的错误?

    我希望能够确保函数在接收到无效值时会抛出错误 例如 假设我有一个仅返回正数的函数 pos pos Int gt Int pos x x gt 0 x otherwise error Invalid Input 这是一个简单的例子 但我希望你
  • 冗余通用参数

    我有这两个接口和类 public interface Identifiable
  • 如何保护nodejs中的公共动态文件夹

    我在 public images picture jpg 中显示带有玉的图片 但我想保护某些图片或限制对公共文件夹的访问 该怎么做 project node modules public images image jpg javascrip
  • 如何在Excel中仅复制单元格的纯文本?

    我正在设计一个 Excel 工作表 用户将单击一个命令按钮来复制预定的单元格范围 然后 用户可以使用 Firefox 或 IE 将内容粘贴到 Web 应用程序中 Web 应用程序的设计超出了我的控制范围 目前用于数据输入的文本框是富文本输入
  • 为多个变量制作堆积条形图 - R 中的 ggplot2

    我在 ggplot2 中制作堆积条形图时遇到一些问题 我知道如何用 barplot 制作一个 但我想使用 ggplot2 因为很容易使条形具有相同的高度 如果我没有记错的话 使用 position fill 我的问题是我有多个变量 我想将它
  • 有效地找到独特的排列

    我有以下问题 我需要计算一个集合的排列 然而 该集合可能包含两个相同的元素 因此会导致重复排列 例如 给定集合 0 0 1 2 排列包括以下可能性 1 2 0 0 1 2 0 0 但是 我想避免类似的相同排列 在 MATLAB 中我可以简单
  • 验证一个字段或另一个字段是否存在 (XOR)

    如何验证一个或另一个字段的存在 但不能同时验证两个字段和至少一个字段的存在 如果您将条件添加到数值验证中 您的代码将起作用 如下所示 class Transaction lt ActiveRecord Base validates pres
  • 如何退出或关闭(而不是杀死)Word文档(进程)?

    在我们公司 我们使用 Windows 应用程序生成 Word 2010 文档 有时文档没有正确关闭 因此另一个应用程序 是的 他们仍然称之为开发 杀死运行超过1分钟的word进程 这些被杀死的进程存储在MS Word的 文档恢复 中 这些文
  • 如何使控制中心滑块可编辑?

    我正在开发一个可以播放声音文件的应用程序 如果我打开苹果音乐应用程序 滑块可以让我在我所在的歌曲之间移动 其他应用程序 例如 Spotify 或 overcast 不允许这种行为 到目前为止 我已经能够更改控制中心的所有参数 但除外 有什么
  • opencv中cv::KeyPoint类的类成员class_id的含义和用途是什么?

    OpenCV 2 4 3参考手册中KeyPoint class id被描述为 可用于按其所属对象对关键点进行聚类的对象 ID 由于我对 关键点 缺乏足够的了解 我无法理解其目的是什么class id 我的另一个问题是 通过使用特征检测器 描
  • 是否可以可靠地将用户文件自动解码为 Unicode? [C#]

    我有一个网络应用程序 允许用户上传其内容进行处理 处理引擎需要 UTF8 并且我正在从多个用户的文件编写 XML 因此我需要确保可以正确解码上传的文件 因为如果我的用户知道他们的文件 我会感到惊讶were编码 我几乎不希望他们能够正确spe
  • 从 DOM 元素获取 ComponentRef

    已经回答了如何从 Angular 2 组件获取 DOM 元素 ComponentRef location nativeElement ComponentRef location 提供了可以直接访问 DOM 的 ElementRef But
  • 如何访问分配给不同进程的内存? [复制]

    这个问题在这里已经有答案了 我已编辑 1 c 如下 include
  • 将 stdout 和 stderr 重定向到分布式 shell 程序的套接字

    我制作了一个具有客户端和服务器的分布式 shell 程序 客户端向服务器发送命令请求 服务器在本地执行该命令 并将该命令的结果输出给客户端 我无法弄清楚如何将 stdout stderr 重定向到客户端 我使用 execvp 来执行命令 我
  • 在ajax spring mvc中返回ModelAndView

    你好 我使用 spring mvc ajax 我通过传递用户 ID 进行了 ajax 调用 一切顺利 成功返回 ajax 但是当我提醒响应时 它简单地显示了 html 页面代码 请帮我解决这个问题 我想我没有很好地编码我的ajax 帮助我以
  • 如何捕获 WebSocket 连接中断?

    在 Firefox 中 至少 如果你按 ESC 那么它将关闭所有打开的 WebSockets 连接 我需要捕获该断开连接 并在再次可用后尝试重新连接 这是我尝试实现的代码示例 但我无法弄清楚如何捕获错误并允许我优雅地处理它 看一下代码 ht