ZeroMQ for Node.js是否与Electron兼容
Is ZeroMQ for Node.js compatible with Electron?
我非常头疼,因为我试图让ZMQ节点绑定与Electron一起工作,尤其是在Windows上。我正在使用Windows7和Ubuntu16.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工作吗?如果是,您的开发环境是什么样的?谢谢
问题是Electron和您的node版本提供的node.js二进制文件不匹配。长话短说,您需要使用相同的Node.js头编译Electron和ZeroMQ。以下是Electron社区的回应http://github.com/electron/electron/issues/6805.不过现在有一个简短的答案!
使用zeromq
代替zmq
(与API相同)。zeromq
为electron提供预构建的二进制文件,并为OS X、Windows和macOS/OS X提供node.js。安装zeromq
后,为您使用的electron版本重建:
npm rebuild zeromq --runtime=electron --target=1.4.5
感谢zeromq.js团队,使用zeromq玩得开心!
将对队列的访问放在api层后面可能更安全。你可能会在稳定性方面取得更好的成功,电子中的原生模块可能非常棘手。
但我的意思是有一个REST服务器,你的电子应用程序可以与之通信。它会向该api发送一条消息,然后该api为您的应用程序排队。将对网络级别队列的访问权限限制为只有api服务器。
- 将Firebase与Electron结合使用
- TypeError:在不兼容的接收器nodejs上调用了方法Uint8Array.length
- 当脚本由system.js加载时,如何要求('electron')
- NEDB在Electron应用程序中的持久性
- internet explorer 8兼容模式下的Youtube api错误
- CKJustify和Color Button插件之间的不兼容
- 如何将eventListeners与Angularjs+Electron一起使用
- 在不兼容的接收器上调用的方法Set.prototype.add未定义
- 如何计算与php中的CRC32函数兼容的arrayBuffer(javascript中的From FileReader)
- 正在寻找一种跨移动浏览器兼容的方式,通过内置麦克风进行录制
- Electron:Express.js服务器在Mongo数据库'It’准备好了
- 将对象数组转换为与nodejs/pg/unnest兼容的数组
- 创建web服务“;活动指示器”-与所有浏览器兼容的类似指示符
- qoxdoo中的离线存储是否与所有浏览器和本地文件系统兼容
- Electron的OAuth 2.0客户端机密
- 如何创建加号[+]减号[-]切换,以扩展链接列表,并与Opera Mini兼容
- 如何将信息从网络服务器发送到Electron应用程序
- 如果不兼容,则隐藏范围输入
- 一些sencha/enyo风格功能的主干兼容UI/组件库
- ZeroMQ for Node.js是否与Electron兼容