繁体   English   中英

在Node.js服务器和浏览器之间共享二进制缓冲区

[英]Sharing binary buffer between Node.js server and Browser

如何在node.js和包含二进制数据的浏览器之间共享缓冲区存在问题。 我很高兴Socket.io作为传输层,但问题是没有为浏览器移植Buffer类 不管怎样我都找不到

我也遇到过binary.js ,我想知道是否有一种很好的方法来组合它们将socket.io作为传输层,将Binary.js作为数据媒体。 我也看到了这个问题 ,这是一个主题,但并没有真正解决问题。

我知道socket.io添加了二进制支持,但我没有找到关于该主题的任何文档。

更新:

似乎binary.js不是解决方案。 我想要的基本要求是与浏览器共享Buffer在节点中具有的相同功能。

我的需求包括两件事:

  1. 在服务器和浏览器中以相同的方式处理缓冲区。

  2. 支持二进制数据。

我可能会使用Array Buffer。

编辑:由于node.js在V8上运行,因此您可以使用ArrayBuffer。 似乎问题已经解决了。 然而,据我所知,节点人员认为创建一个缓冲模块并在他们创建的C绑定中管理它是一个好主意(来自Ryan Dahl的讲话)。 我认为这与如何通过网络进行缓冲有关。 这意味着ArrayBuffer仍然不是在服务器和浏览器之间共享的良好数据媒体。

browser-buffer在浏览器中模拟Node的Buffer API。

它由Uint8Array 支持 ,所以浏览器支持是粗略的。

JavaScript的内置字符串在内部使用宽字符。 因此,他们可以轻松地在每个角色位置存储0到255之间的值。 这是一种JavaScript语言功能,因此它应该在浏览器或node.js使用相同的功能。

您可以使用charCodeAt提取字符串中特定位置的值,并使用fromCharCode创建一个字符(可以添加到字符串中),其值为0到255。

您可以使用各种字符串函数来处理此表单中的数据。 您可以使用JavaScript字符串常量创建常量,例如"\\x00\\x12\\x34\\x56"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM