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

标签 javascript node.js zeromq electron

试图获得 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/

相关文章:

javascript - iframe onclick 动画或切换

javascript - 无需硬刷新的 Gif 重置缓存

javascript - 在 PaperJS 中,围绕点旋转形状无法正常工作

javascript - node.js 获取相对于文件的项目/src 路径

Java NIO 选择器可能的最小延迟

javascript - 如何从json格式中选择特定的id...?

php - 在 Node.js Web 服务器中执行 PHP 脚本

node.js - Node.js 是否优先考虑 I/O 事件而不是 setTimeout()?

networking - 阻塞操作和 ZeroMQ

简单 PUB/SUB 应用程序中的 Czmq 内存泄漏