gpt4 book ai didi

javascript - Websocket base64,二进制类型

转载 作者:行者123 更新时间:2023-11-30 08:36:13 27 4
gpt4 key购买 nike

我很困惑。我试图了解 Websockets 是如何工作的,并在 node.js 和客户端中构建了一个服务器。我无法理解的是,Websocket 如何发送数据。在从客户端(浏览器)发送之前是否对数据库进行了 base64 编码?“二进制类型”是如何工作的?仅用于接收?

我是否也必须在服务器上实现这些?服务器端是否需要“二进制类型”选项?

我什么时候需要 blob 和 arraybuffer ?取决于小数据和大数据?if get 获取视频和音频文件会怎样?

我查看了如何在网络上发送图片,我发现通常的解决方案是,图片经过 base64 编码,然后发送。但是如果浏览器中的 Websocket API 已经将二进制文件编码为 base64,我就不必这样做了..

对不起,我很困惑,希望有人能帮助我

最佳答案

阅读RFC 6455 , 特别是 5. Data Framing ,您可以在那里找到答案。

在 WebSocket 协议(protocol)中,数据使用一系列(而不是 base64 编码)传输。 RFC 6455 中定义的帧类型如下。

  1. 延续帧(操作码 = 0x0)
  2. 文本 框架(操作码 = 0x1)
  3. 二进制 帧(操作码 = 0x2)
  4. 关闭帧(操作码 = 0x8)
  5. Ping 帧(操作码 = 0x9)
  6. Pong 框架(操作码 = 0xA)

体面的 WebSocket 库(包括客户端库和服务器端库)可以处理所有这些帧并提供发送/接收它们的函数/方法。因此,无论数据是文本还是二进制,您都不必担心数据的编码方式(除非您选择了一个糟糕的 WebSocket 库)。

请注意,客户端和服务器都可以发送/接收文本帧和二进制帧。

关于javascript - Websocket base64,二进制类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31213862/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com