Buffer的使用

本文介绍了Node.js中处理二进制数据的关键类Buffer,包括其与二进制、字符串的关系,创建方法如Buffer.alloc,以及在文件读取中的应用。通过Buffer,开发者能够方便地操作各种类型的二进制数据,如文本、图片等。
摘要由CSDN通过智能技术生成

数据的二进制

  • 计算机中所有的内容:文字、数字、图片、音频、视频最终都会使用二进制来表示。
  • JavaScript可以直接去处理非常直观的数据:比如字符串,我们通常展示给用户的也是这些内容。
  • 不对啊,JavaScript不是也可以处理图片吗?
    • 事实上在网页端,图片我们一直是交给浏览器来处理的;
    • JavaScript或者HTML,只是负责告诉浏览器一个图片的地址;
    • 浏览器负责获取这个图片,并且最终讲这个图片渲染出来;
  • 但是对于服务器来说是不一样的:
    • 服务器要处理的本地文件类型相对较多; p 比如某一个保存文本的文件并不是使用 utf-8进行编码的,而是用 GBK,那么我们必须读取到他们的二进制数据,再通过GKB转换
      成对应的文字;
    • 比如我们需要读取的是一张图片数据(二进制),再通过某些手段对图片数据进行二次的处理(裁剪、格式转换、旋转、添加滤
      镜),Node中有一个Sharp的库,就是读取图片或者传入图片的Buffer对其再进行处理;
    • 比如在Node中通过TCP建立长连接,TCP传输的是字节流,我们需要将数据转成字节再进行传入,并且需要知道传输字节的大小
      (客服端需要根据大小来判断读取多少内容);

Buffer和二进制

  • 我们会发现,对于前端开发来说,通常很少会和二进制打交道,但是对于服务器端为了做很多的功能,我们必须直接去操
    作其二进制的数据;
  • 所以Node为了可以方便开发者完成更多功能,提供给了我们一个类Buffer,并且它是全局的。
  • 我们前面说过,Buffer中存储的是二进制数据,那么到底是如何存储呢?
    • 我们可以将Buffer看成是一个存储二进制的数组;
    • 这个数组中的每一项,可以保存8位二进制: 00000000
  • 为什么是8位呢?
    • 在计算机中,很少的情况我们会直接操作一位二进制,因为一位二进制存储的数据是非常有限的;
    • 所以通常会将8位合在一起作为一个单元,这个单元称之为一个字节(byte);
    • 也就是说 1byte = 8bit,1kb=1024byte,1M=1024kb;
    • 比如很多编程语言中的int类型是4个字节,long类型时8个字节;
    • 比如TCP传输的是字节流,在写入和读取时都需要说明字节的个数;
    • 比如RGB的值分别都是255,所以本质上在计算机中都是用一个字节存储的;

Buffer和字符串

  • Buffer相当于是一个字节的数组,数组中的每一项对于一个字节的大小:
  • 如果我们希望将一个字符串放入到Buffer中,是怎么样的过程呢?
    • 这种创建Buffer的方式不推荐了
      请添加图片描述
  • 它是怎么样的过程呢?
    请添加图片描述
    在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在FreeSWITCH中,Jitter Buffer(抖动缓冲区)用于处理网络传输中的抖动问题,以确保音频流的稳定传输和播放。以下是在FreeSWITCH中使用Jitter Buffer的一般方式: 1. 确定Jitter Buffer的设置:您可以在FreeSWITCH的配置文件中找到与Jitter Buffer相关的设置。一般来说,您需要定义Jitter Buffer的大小(以毫秒为单位)和其他相关参数,例如最小延迟和最大延迟等。 2. 针对不同的呼叫路由或应用程序,配置Jitter Buffer:您可以通过在呼叫路由或应用程序的配置文件中设置相关参数来启用或禁用Jitter Buffer,并为每个呼叫路由或应用程序单独配置Jitter Buffer的大小和其他参数。 3. 监控Jitter Buffer的性能:FreeSWITCH提供了一些命令和工具来监视Jitter Buffer的性能和状态。您可以使用命令行工具如fs_cli或Web管理界面来查看Jitter Buffer相关的统计信息,例如延迟、丢包等。 4. 调整Jitter Buffer的参数:根据实际情况,您可能需要根据网络条件和呼叫质量调整Jitter Buffer的参数。通过逐步调整Jitter Buffer的大小和其他参数,您可以优化音频传输的质量和稳定性。 需要注意的是,Jitter Buffer只是解决音频抖动的一种技术手段,具体的配置和调整可能因应用场景和网络环境而有所不同。建议您参考FreeSWITCH的官方文档和社区资源,以获取更详细和准确的配置指南和最佳实践。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值