通过Node.js数据报在Electron中发送UDP数据包

时间:2017-06-19 23:26:54

标签: javascript node.js sockets udp electron

我试图使用电子应用中的node.js dgram包发送udp数据包。 send方法调用Buffer,Uint8Array或string。我尝试使用Buffer或UintArray时遇到类型错误。确切的错误是:TypeError:第一个参数必须是缓冲区或字符串。

我可以在Node.js dgram代码中看到它正在使用!(buffer instanceof Buffer检查缓冲区。如果我在我的代码中尝试在缓冲区上使用instanceof,它只返回对象作为类型,而如果我尝试' Buffer.isBuffer()'它返回true。我已经尝试了节点为创建缓冲区buffer而没有结果的所有方法。发送确实接受字符串,但后来我遇到了编码的各种问题,这感觉有点像hacky。

看起来电子正在运行节点7.4.0。

我从这里看到我的选择:

  1. 编辑node.js代码
  2. 以某种方式覆盖我的缓冲区对象返回的instanceof
  3. 找出将Buffer正确编码为字符串的解决方案。
  4. 有什么想法吗?

1 个答案:

答案 0 :(得分:1)

为了使其工作,我只需将我的全局缓冲区值指向节点缓冲区模块,如下所示:const Buffer = window.require('buffer').Buffer