gpt4 book ai didi

javascript - 用于 Node.js 的 ZeroMQ 是否与 Electron 兼容?

转载 作者:行者123 更新时间:2023-12-03 23:10:53 33 4
gpt4 key购买 nike

试图获得 ZMQ Node bindings 让我非常头疼使用 Electron,尤其是在 Windows 上。我正在使用 Windows 7 和 Ubuntu 16.04,它们都有两个不同的问题。

在 Windows 上,当我尝试执行 require('zmq') 时出现错误

C:\vueelectron\app\node_modules\bindings\bindings.js:91 Uncaught Error: Could not locate the bindings file. Tried:
→ C:\vueelectron\app\node_modules\zmq\build\zmq.node
→ C:\vueelectron\app\node_modules\zmq\build\Debug\zmq.node
→ C:\vueelectron\app\node_modules\zmq\build\Release\zmq.node
→ C:\vueelectron\app\node_modules\zmq\out\Debug\zmq.node
→ C:\vueelectron\app\node_modules\zmq\Debug\zmq.node
→ C:\vueelectron\app\node_modules\zmq\out\Release\zmq.node
→ C:\vueelectron\app\node_modules\zmq\Release\zmq.node
→ C:\vueelectron\app\node_modules\zmq\build\default\zmq.node
→ C:\vueelectron\app\node_modules\zmq\compiled\6.1.0\win32\x64\zmq.node

我试过用 VS 2013 和 2015 编译,多次重建,使用 electron-rebuild似乎没有任何工作。

在 Linux 上它可以正常加载,但问题是当我发送一条消息时,它似乎卡在某个地方的循环中,并且它不断发送发送数百条消息并无限期地继续这样做。通过从 Ubuntu 存储库中的 ZMQ 版本升级到从 ZeroMQ 网站下载的最新版本,解决了这个问题。

这是我在 index.html 中使用的代码我的 Electron 应用程序的文件。
const electron = require('electron')
const zmq = require('zmq')

const socket = zmq.socket('req')
socket.connect('tcp://10.10.0.51:3111')

socket.on('message', function (data) {
console.log(socket.identity + ': answer data ' + data)
})

socket.send('test')

有其他人能够让 Electron + ZMQ 工作吗?如果有,你的开发环境是怎样的?谢谢。

最佳答案

问题是由 Electron 和您的 Node 版本提供的不匹配的 node.js 二进制文件。长答案是您需要使用相同的 Node.js header 编译 Electron 和 ZeroMQ。这是来自 Electron 社区的回复 http://github.com/electron/electron/issues/6805 .不过现在有一个简短的答案!

使用 zeromq 代替zmq (相同的 API)。 zeromq 为 OS X、Windows 和 macOS/OS X 的 electron 和 node.js 提供预构建的二进制文件。安装后 zeromq ,为您正在使用的 Electron 版本重建:

npm rebuild zeromq --runtime=electron --target=1.4.5

感谢 zeromq.js 团队,享受 ZeroMQ 的乐趣!

关于javascript - 用于 Node.js 的 ZeroMQ 是否与 Electron 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38439854/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com