客户端zeromq中的侦听事件 - node.js

时间:2013-06-19 06:00:43

标签: node.js filestream zeromq

我在网络分析中使用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的新手。任何帮助都会很棒。

2 个答案:

答案 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

并尝试使用您选择的语言中的一个示例。这对我帮助很大,而且这些例子(到目前为止)已经开始了第一次尝试!