服务器操作的 Node.js 客户端进度指示器

2024-04-13

我的 Node.js 服务器将对上传的文件执行某些操作,我想将近乎实时的进度反映给客户端。此操作大约需要 30 秒 - 1 分钟才能完成。

理想情况下,文件上传后,客户端将能够观察服务器对文件操作的进度。

我可以执行常规轮询、长轮询,或者通过 websockets 连接到服务器,但所有这些似乎都需要为 30 秒-1 分钟的进度指示器进行相当复杂的设置。

有更好的方法可用吗?


我会这样做套接字.io http://socket.io/#how-to-use。可能有更好的方法,但 socket.io 相对容易配置。

你在使用 Express.js 吗?如果是这样,请确保查看特定于 Express 的部分以获取有关配置的详细信息。配置完成后,您需要执行以下操作:

在服务器上,您将需要发出新的状态

socket.emit('status','aok!');

在客户端上,您将需要侦听来自服务器的新状态

socket.on('status', function (msg) {
    console.log(msg);
    //Put code here to update the page!
});

您可能需要考虑的是调整心跳时间。基本上,服务器会经常对客户端进行 ping 操作,以检查它们是否仍然处于连接状态。我相信默认情况下,这种情况每 25 秒发生一次,并在 60 秒后发生超时且没有响应。您可能想要延长心跳之间的时间,甚至完全禁用它们。

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

服务器操作的 Node.js 客户端进度指示器 的相关文章

随机推荐

  • 如何使用 Java 8 可选,在三个都存在的情况下执行操作?

    我有一些使用 Java 可选的 简化的 代码 Optional
  • SSRS 计算行组和列组的计数

    我正在构建案例结果报告 其中对行组和单列分组进行父子分组 Parent Row Group Location 子行组 结果 列组 月份 报告中贯穿的是一年中的月份 报告中贯穿的是位置以及给定月份中该位置的不同结果细分 看起来像这样 Jan
  • Twitter API:获取关注者 +99

    使用 twitter API 和 OAuth 如果我要调用用户关注者 状态 关注者 我将仅返回 99 个结果 有没有办法让我返回 99 然后从关注者 100 开始再次调用 然后循环这种调用方式 直到返回关注者总数 或者只是返回所有关注者 您
  • Android 日历视图 - 将滚动方向更改为垂直

    我在导航抽屉内的应用程序中使用日历视图来选择不同的日期 除了在日历视图上向左滑动以到达下个月 向右滑动正确更改上个月 之外 一切正常 因为这是关闭抽屉的滑动手势 是否可以将日历的滚动方向更改为垂直而不是水平 我想实现这一点 这样用户就不必严
  • JavaFX - 以编程方式设置目标路径以直接将节点打印到 pdf 文件

    我想使用 Microsoft Print to PDF 打印机将节点打印到 pdf 文件 假设 Printer 对象已经被提取 我有下一个功能 该功能运行良好 public static void printToPDF Printer pr
  • Canvas 类绘图基元的除法独立性

    Android Canvas 类支持一组丰富的绘图基元 圆 线等 我有一个应用程序使用这些图元来绘制一些统计数据 阅读完相关说明后http developer android com reference android graphics C
  • 在node_modules/dojo/dojo.js的resolveDepMaps()中出现“TypeError: deps.map is not a function”

    我一直在更改我的组织的底层基础设施 以将我们的自动化测试从使用单独的 Web 服务器在浏览器客户端中运行切换到在测试运行程序 实习运行程序 中运行 在测试运行器环境中 一切进展顺利 我解决了很多问题 但随后繁荣起来 有人删除了一个新的单元测
  • 如何创建一个值超过允许的最大整数的枚举?

    我正在 C 中创建一个枚举 以使用二进制标志创建一个有限状态机 看起来像 enum VStates NEUTRAL 0x00000000 000000 Physical Status DRY 0x00000001 000001 WET 0x
  • Java Web 服务 - Axis 是必要的吗?

    Is AXIS or CXFJava Web 服务必需吗 这一切都可以通过 JDK 1 6 完成吗 Java Web 服务需要 AXIS 或 CXF 吗 不 虽然Axis2 http ws apache org axis2 是使用 Web
  • 如何设计“冰淇淋三明治”选项卡之间的分隔线样式?

    我将以下样式与一组九个补丁图像一起使用 在一些冰淇淋三明治选项卡的底部创建一条红线 而不是标准的蓝线
  • 在c#中将未命名的json数组反序列化为对象

    想知道如何在 C 中反序列化以下字符串 access token thisistheaccesstoken 如果 json 是 我知道该怎么做 array access token thisistheaccesstoken 我会这样做 pu
  • java 注释:用 xml 文件覆盖注释的库

    Java 有注释 这很好 然而 一些开发人员认为最好使用 xml 文件用元数据注释代码 其他开发人员更喜欢注释 但会使用元数据覆盖源代码中的注释 我正在编写一个使用注释的 Java 框架 问题是 是否有一种标准方法来定义和解析 xml 文件
  • 处理回调

    我在 Objective C 类中有一个方法 它有 2 个用 C 编写的回调函数 类指针 即self被传递给这些函数作为void 在 C 函数中 我创建一个类型为 class 的指针并分配void 范围 第一个回调函数执行成功 但是void
  • 使用 FFMPEG 播放音频

    我一直在尝试使用 NDK 将 FFMPEG 用于播放音频 移植到 Android 中 我取得了一些成功 我可以构建 FFMPEG 并通过 NDK 链接它 我可以打电话avcodec decode audio3 并解码给定的音频文件 所以这里
  • java并发hashmap

    这似乎是错误的 static ConcurrentHashMap k multiple threads have access to k X o k get LL o a 6 如果多个线程同时访问 k 并获取 k LL 然后在没有 k pu
  • 使用 glassfish 4 和 Postgres 在 eclipselink 中创建数据库不起作用

    我想创建基于实体的数据库 配置 Glassfish GlassFish 服务器开源版 4 1 版本 13 Eclipselink Eclipse 持久性服务 2 5 2 v20140319 9ad6abd 随 glassfish 提供 数据
  • Python:PDF:如何读取带有单选按钮的表单

    我创建了一个带有一些单选按钮的表单 遵循以下示例使用 Python 在 ReportLab 中创建交互式 PDF 表单 https www blog pythonlibrary org 2018 05 29 creating interac
  • sublimegdb 无法停在断点处

    我在 sublime text 2 中安装了 sublimeGDB 并且我的设置是正确的 然后我在一行中按 F9 设置断点 当我按F5运行时 我发现我的程序无法停在断点处 并且程序运行完毕 下面显示的信息是 GDB session结束 GD
  • UITapGestureRecognizer 不适用于 .began 状态

    我在我的应用程序中添加了两个手势识别器UIView func tap sender UITapGestureRecognizer if sender state began print snapping photo func longPre
  • 服务器操作的 Node.js 客户端进度指示器

    我的 Node js 服务器将对上传的文件执行某些操作 我想将近乎实时的进度反映给客户端 此操作大约需要 30 秒 1 分钟才能完成 理想情况下 文件上传后 客户端将能够观察服务器对文件操作的进度 我可以执行常规轮询 长轮询 或者通过 we