Base64在节点(node.js)中有效地从Buffer到Buffer进行解码

时间:2010-10-25 00:25:53

标签: javascript c++ encoding node.js

我目前在noVNC中有一个python和C版本的wsproxy(WebSockets到普通TCP套接字代理)。我想使用node.js创建一个wsproxy版本。一个关键因素(以及我不仅仅使用现有节点WebSocket代码的原因)是,在WebSocket标准具有二进制编码之前,必须对wsproxy和浏览器/客户端之间的所有流量进行编码(并且base64 decode / encode快速简便在浏览器中。)

缓冲区类型具有base64编码支持,但这是从Buffer到字符串,反之亦然。 如何在两个缓冲区之间进行base64编码/解码而无需先转换为字符串?

约束:

  • 直接缓冲区到缓冲区(除非您可以显示Buffer-> string->缓冲区同样快)。
  • 由于node有内置的base64支持,我想使用它,而不是外部模块
  • 在单个缓冲区内进行编码/解码是可以接受的。

Here是对节点中base64支持的讨论,但从我看到的内容并未回答我的问题。

1 个答案:

答案 0 :(得分:0)

您应该可以使用流来执行此操作,但请先阅读此blog about UTF-8 decoding,因为您可能会遇到类似的问题。如果你不需要它,我不是建议你做UTF-8编码/解码,而是你看看这个代码如何处理分散在由块边界分隔的多个字节的单个字符的问题。 / p>