WebSocket 中是否有像lastEventId 这样的数据块ID?

2023-12-02

我使用 WebSockets 在浏览器(客户端)中的按钮按下事件上从服务器发送图像。 WebSocket API 的 onmessage() 方法接收到的图像数据是 Blob 结构,分为多个块。问题在于短时间内多次按下按钮事件,收到的块是出故障.

有没有我可以用来区分块的标识符在浏览器端? WebSocket 事件中有一个字段“lastEventId”,但它始终为空。

socket.onmessage = (event) =>
{
    console.log(event.data); // Chunked Blob data
    console.log(event.lastEventId); // Always empty
    // Process data
}

OR

服务器是一个Lighttpd服务器那么是否需要对lighttpd进行任何配置才能为数据块启用某种ID?


我认为您可能会误认为 WebSockets 与 Server-Sent-Events

服务器发送的事件与 WebSockethttps://www.html5rocks.com/en/tutorials/eventsource/basics/#toc-introduction-differences

服务器发送的事件具有 WebSocket 在设计上缺乏的各种功能,例如自动重新连接、事件 ID 以及发送任意事件的能力。

如果您的服务器端脚本是 websocket 端点,那么您可以在服务器发送事件响应中包含一个 id,并在 websocket 帧中正确发送它。

如果您使用的是 lighttpdmod_wstunnel要执行通用的 websocket 框架,那么您必须在脚本中适当地构造 blob 数据,然后客户端必须重建 blob(可能来自多个 websocket 框架)。 lighttpd mod_wstunnel 与 JSON 有效负载配合得很好,因此您可以考虑将(小!)图像作为 Base64 编码 JSON 的一部分发送。这绝不是唯一的方法。

编辑:进一步的文档服务器发送的事件

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

WebSocket 中是否有像lastEventId 这样的数据块ID? 的相关文章

随机推荐

  • 如何将原始 POST 数据传递到 urllib3 中?

    尝试使用 urllib3 发布 JSON 编码数据 只是希望我的 POST 有效负载是原始 JSON 字符串 内容类型为 application json 我只是不知道该怎么做 urllib3 文档描述了在 字段 中发布数据 即带有 键 值
  • 条件长度 > 1 并且 if else 语句中仅使用第一个元素

    pred data frame seq 1 100 by 2 obs data frame seq 1 100 by 3 pr data frame seq 1 200 by 4 for i in 1 dim pred 2 if pr i
  • 从 Pyscripter 中的函数调用时记录不写入文件

    目前 如果我从 python 命令行运行以下代码 它将写入由filename正如预期的那样 import logging def test logging basicConfig format asctime s message s dat
  • 带有 ManagedBeans 的 Primefaces 总是返回 null [重复]

    这个问题在这里已经有答案了 我有个问题 我有一个表格 通过将输入发送到 bean 进行调试 在 bean 对象中始终为 null 你能帮我解决这个问题吗 这里是代码
  • 代码仅从 Firebase 中的数据检索一个值

    正如标题所示 我正在尝试从 firebase 数据库检索一些数据 但我的代码无法正常工作 我在 帖子 中有三个孩子 我猜这就是你对他们的称呼 名为 标题 描述 和 用户名 我试图获取所有这些孩子并将它们附加到一个变量中以便稍后使用它们 但它
  • iCal 格式 - 存储事件创建者

    我目前正在编写一个大致基于 iCalendar 标准的日程安排应用程序 有谁知道我可以在哪个属性中存储活动创建者的信息 通过浏览 iCalendar RFC 2445 我找到了这个属性 组织者 即使活动创建者是唯一参与活动的人 我是否可以将
  • 内存布局意味着Go中[]T无法转换为[]接口?

    所以我一直在阅读这两篇文章和这个答案 无法将 string 转换为 interface 表示需要更改内存布局 http jordanorelli com post 32665860244 how to use interfaces in g
  • 如何在移动设备的 Facebook 即时游戏中创建 Phaser 按钮

    我正在尝试在移动设备上使用 Phaser 2 CE 创建一个按钮 但它不会触发 即使它在桌面上运行良好 整个代码也会打开我的 github 存储库但目前我只能显示一个图像 如下面的代码所示 var game new Phaser Game
  • PROLOG 打印以 7 结尾且其数字之和大于 100 的数字

    我需要创建一个谓词来接收数字列表并仅打印以 7 结尾且其数字之和大于 100 的数字 我为分离做了谓词 但我需要帮助将两个谓词合并起来 我的意思是这两个谓词进入一个唯一的谓词 这就是我到目前为止所做的 sum of digits great
  • 如何导入 java 的 multimap?

    这有点愚蠢 但我该如何安装MultiMap 我需要一种将多个值存储到键的方法 但我的地图实现无法正常工作 那堂课 MultiMap 不是 Java 标准库的一部分 它是一部分阿帕奇共享区 一组独立的实用程序类 许多 Java 开发人员认为很
  • 如何使用非树数据创建 d3.js 可折叠力布局?

    我有一个 d3 力定向布局 其中的数据具有下面类似的结构 是否可以应用可折叠力布局 例如http bl ocks org mbostock 1062288到它 我希望单击时折叠 展开节点 nodes x 469 y 410 x 493 y
  • Java 8:使用字符串的字符数创建 HashMap

    想知道是否有比计算给定字符串的字符数更简单的方法 如下所示 String word AAABBB Map
  • 表单获取方法:防止在查询字符串中提交空字段

    我正在开发一个搜索表单 搜索表单有 2 个部分 首先使用一些选择 输入和提交按钮进行简单搜索 第二个包含许多选择 复选框 单选 输入和提交按钮 我正在使用 GET 方法 因为我想要查询字符串中的所有字段 example com cars p
  • 创建一个新分支

    我想创建新分支 B 目前 我有一个主分支 本地和远程 和功能分支 A 本地 功能分支 A 已在远程删除 另外 我的本地功能分支中有一些已提交的文件和未暂存的文件 我想去master在不丢失任何更改并创建另一个分支的情况下 先提交该分支 然后
  • 在 matplotlib 轮廓图中同时使用 set_under 和 set_bad

    我正在尝试生成一个 matplotlib 轮廓图 其中指定值下的所有值都为白色 包括零 并且所有 nan 值 代表缺失数据 为黑色 我似乎无法让 nan 值的颜色与低于 零值不同 问题的一个简化示例是 import numpy as np
  • 打印到同一行时遇到问题

    我正在尝试编写一个代码 您在控制台中输入一个整数 然后您输入的整数显示得更大 由字母组成 如 ascii art 所以假设输入是112 那么输出将是 我的代码将具有相同的输出 只是不在同一行 它将在另一个数字下打印一个数字 从我的代码中您可
  • seaborn barplot:随 x 和色调改变颜色

    我的数据集包含有关决策支持模型的短期和长期影响的信息 我想将其绘制在条形图中 有 4 个条形 模型 短期 模型 长期 模型关闭 短期 模型 长期 这是一些示例代码 df pd DataFrame columns model time val
  • 临时容器对象上的迭代器

    假设我有一个按值返回 STL 容器的函数 例如 std list std list
  • 将小部件嵌入到 QWindow 中

    基本上我想使用创建一个窗口QtGui QWindow 代替QtWidgets QMainWindow 我想这样做是因为我想访问QWindow功能例如 startSystemMove setTitle setWindowStates star
  • WebSocket 中是否有像lastEventId 这样的数据块ID?

    我使用 WebSockets 在浏览器 客户端 中的按钮按下事件上从服务器发送图像 WebSocket API 的 onmessage 方法接收到的图像数据是 Blob 结构 分为多个块 问题在于短时间内多次按下按钮事件 收到的块是出故障