存在如何在node.js和包含二进制数据的浏览器之间共享缓冲区的问题。我对Socket.io作为传输层非常满意,但问题是没有为浏览器移植Buffer class。不是我能找到的东西
我也遇到过binary.js,我想知道是否有一种好方法来将它们结合起来,将socket.io作为传输层,将Binary.js作为数据媒介。我也看到了这个question,这是一个主题,但并没有真正解决问题。
我知道socket.io添加了二进制支持,但我还没有找到任何关于这个主题的文档。
更新:
看起来binary.js不是解决方案。我想要的基本要求是与浏览器共享节点中Buffer所具有的相同功能。
我的需求包括两件事:
我可能会使用数组缓冲区。
编辑:因为node.js运行在V8之上,所以你可以使用ArrayBuffer。看起来问题似乎已经解决了。然而,据我所知,node人员认为创建一个buffer模块并在他们创建的C绑定中管理它是一个好主意(来自Ryan Dahl的一次演讲)。我认为这与如何在网络上进行缓冲有关。这意味着ArrayBuffer仍然不是在服务器和浏览器之间共享的好数据媒介。
发布于 2012-09-19 06:33:52
browser-buffer在浏览器中模拟节点的Buffer
应用编程接口。
它是由Uint8Array
支持的,所以browser support是粗略的。
发布于 2012-09-19 12:15:51
JavaScript的内置字符串在内部使用宽字符。因此它们可以很容易地在每个字符位置存储一个从0到255的值。这是一个JavaScript语言特性,因此它在浏览器或node.js
中的工作方式应该是相同的。
可以使用charCodeAt
提取字符串中特定位置的值,使用fromCharCode
创建一个值在0到255之间的字符(可以添加到字符串中)。
您可以使用各种字符串函数来操作此表单中的数据。您可以像下面的"\x00\x12\x34\x56"
一样使用JavaScript字符串常量创建常量。
https://stackoverflow.com/questions/12229079
复制相似问题