我在网络分析中使用zeromq来实时记录日志。
详细信息: 我正在阅读日志文件(网站分析日志文件)。每当修改日志文件时,都要读取它。它与ubuntu中的tail相同。我正在使用zeromq进行pub-sub事件。
示例服务器端:
var zmq = require('zmq');
var socket = zmq.socket('pub');
socket.bind('tcp://127.0.0.1:2001', function(error) {
if (error) {
console.log(error);
}
var fs = require("fs");
fs.watchFile(config.filePath, function (curr, prev) {
socket.send("file updated");
});
var socket = zmq.socket('sub');//Have to be ported to client side
socket.connect('tcp://127.0.0.1:2001');
socket.subscribe('');
socket.on('message', function(msg){
console.log('work: %s', msg);
});
});
我的问题是如何在客户端(javascript)监听事件以及如何在客户端需要zmq?
我是zeromq的新手。任何帮助都会很棒。
答案 0 :(得分:1)
此处node.js中有很多客户端示例...
https://github.com/imatix/zguide/tree/master/examples/Node.js
为什么在服务器上有用户代码?这只是一次健全检查吗?
var socket = zmq.socket('sub');
socket.connect('tcp://127.0.0.1:2001');
socket.subscribe('');
socket.on('message', function(msg){
console.log('work: %s', msg);
});
答案 1 :(得分:1)
这可能与您的问题无关,但我想我会添加此问题,以防其他人在从ØMQ或zguide获取示例时遇到问题。
如果您正在从此页面运行服务器 - 客户端示例(或者根据您选择的语言设置类似示例):
http://zguide.zeromq.org/js:_start
并且它无效,请尝试查看此页面:
https://github.com/imatix/zguide/tree/master/examples
并尝试使用您选择的语言中的一个示例。这对我帮助很大,而且这些例子(到目前为止)已经开始了第一次尝试!