【发布时间】:2016-11-21 05:54:23
【问题描述】:
试图让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 网站下载的最新版本来解决。
这是我在 Electron 应用程序的 index.html 文件中使用的代码。
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 工作吗?如果是这样,您的开发环境是什么样的?谢谢。
【问题讨论】:
-
我的回答中添加了详细说明,请查收。
标签: javascript node.js zeromq electron