[英]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在节点中具有的相同功能。
我的需求包括两件事:
在服务器和浏览器中以相同的方式处理缓冲区。
支持二进制数据。
我可能会使用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.