我目前在noVNC中拥有wsproxy的python和C版本(将WebSockets转换为普通的TCP socket代理)。我想创建一个使用node.js的wsproxy版本。一个关键因素(也是我不仅仅使用现有的node WebSocket代码的原因)是,直到WebSocket标准具有二进制编码,wsproxy和浏览器/客户端之间的所有流量都必须被编码(base64解码/编码在浏览器中快速而容易)。
缓冲区类型支持base64编码,但这是从一个缓冲区到一个字符串,反之亦然。如何在两个缓冲区之间进行base64编解码而无需首先转换为字符串?
限制条件:
缓冲区类型支持base64编码,但这是从一个缓冲区到一个字符串,反之亦然。如何在两个缓冲区之间进行base64编解码而无需首先转换为字符串?
限制条件:
- 直接进行缓冲区到缓冲区操作(除非您可以证明Buffer->string->Buffer与此同样快)。
- 由于node内置了base64支持,我希望使用它而不是外部模块。
- 在单个缓冲区内进行原地编码/解码是可以接受的。
buffer.copy
在复制时不会应用编码,并且在快速测试中使用toString()
会慢150倍。您可能需要在Node上报告一个缓冲区复制的错误,该错误会在指定的编码中进行复制。 - Ivo Wetzel