关于electron 和nodejs之间的关系的疑问

最近遇到了一些问题,是关于TCP通信这一块的。
electron的简介中提到,是把Chromium和Node.js合并到同一个运行时环境中

那是不是意味着无论是v8的API或者是NODE的模块我都能正常使用呢?而在开发过程中我发现并不是这样的,或者说,简介中提到的合并nodejs到同一个运行时环境并不包括node的运行时环境。

举个简单的例子,原本我们项目需要兼容各端做 长连接的,所以打算使用socket而不是websocket,第一反应就是用node的net模块。 并且使用google protobuf来编解码。但是问题也相继而来。

google protobuf编码后返回的是一个uint8Array数据,是一个object,而用net模块发送消息,必须是string或者buffer

我找了很多资料。在前端这一块是没有buffer这个对象的,比如我通过node模块写一个buffer,然后打印。在node环境中直接运行输出 <Buffer xx>数据,而在前端则输出 uint8Array,是一个数组。这种TypedArray是一种通用的固定长度缓冲区类型,允许读取缓冲区中的二进制数据,尽管uint8Array.buffer属性是对arraybuffer的引用,通过net.socket.write方法,还是会报错,因为arraybuffer的引用还是一个object。

所以我对于electron中 chromium和node.js合并到同一个运行时坏境这句话抱有很大的疑问。

new Buffer产生的对象在前端永远表示为uint8Array!

结论:electron集成的v8引擎和node中的V8不完全一致,官方有说明

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值