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在节点中具有的相同功能。
我的需求包括两件事:
-
在服务器和浏览器中以相同的方式处理缓冲区。
-
支持二进制数据。
我可能会使用数组缓冲区。
编辑:由于node.js在V8上运行,因此可以使用ArrayBuffer。这个问题似乎已经解决了。然而,据我所知,节点人员认为创建一个缓冲模块并在他们创建的C绑定中管理它是个好主意(来自Ryan Dahl的演讲)。我认为这与如何通过网络进行缓冲有关。这意味着ArrayBuffer仍然不是一个在服务器和浏览器之间共享的好数据介质。
浏览器缓冲区在浏览器中模拟Node的Buffer
API。
它有一个Uint8Array
支持,所以浏览器的支持是粗略的。
JavaScript的内置字符串在内部使用宽字符。因此,他们可以很容易地在每个字符位置存储从0到255的值。这是一个JavaScript语言特性,因此它在浏览器或node.js
中应该同样工作。
可以使用charCodeAt
提取字符串中特定位置的值,使用fromCharCode
创建一个值从0到255的字符(可以添加到字符串中)。
您可以使用各种字符串函数来处理此表单中的数据。您可以使用JavaScript字符串常量创建常量,如"'x00'x12'x34'x56"
。
- Facebook共享显示一个接一个的空白页面
- 如何将PDF作为二进制文件传递到window.open()
- 通过javascript/html访问twitter共享iframe
- 如何将字母转换为二进制代码
- 在我的SPA应用程序中集成Facebook共享的问题
- 在索引.html和应用.js [node.js] 之间共享变量
- AngularJS:$q.dedefe()不能由工厂方法共享
- 使用闭包共享构造函数参数
- Facebook共享动态参数链接
- Node.js上的WebSocket,并在所有连接的客户端之间共享消息
- Javascript 二进制搜索/插入预处理
- 如何在没有插件和Wordpress的情况下创建共享社交媒体
- 在requirejs中共享实例化对象
- 如何在JavaScript中实现二进制搜索
- 在Javascript服务器/客户端中共享对象定义
- 使用服务(AngularJS)在控制器之间共享数据
- 我可以共享一个HTML播放器吗
- 如何在Windows中将Javascript文件编译成二进制文件
- AngularJS中的页面之间共享数据返回空
- Node.js服务器和浏览器之间共享二进制缓冲区