1

我在网络分析中使用zeromq来实时通知日志。

详细信息: 我正在阅读日志文件(网络分析日志文件)。每当日志文件被修改时,它就会被读取。它与ubuntu中的尾巴相同。我将 zeromq 用于发布订阅事件。

示例服务器端:

        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 的新手。任何帮助都会非常有用。

4

2 回答 2

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);
  });
于 2013-06-19T17:52:04.877 回答
1

这可能与您的问题无关,但我想我会添加这个,以防其他人在从 ØMQ 或 zguide 获取示例时遇到问题。

如果您正在运行此页面中的服务器-客户端示例(或您选择的语言设置的类似示例):

http://zguide.zeromq.org/js:_start

并且它不起作用,然后尝试查看此页面:

https://github.com/imatix/zguide/tree/master/examples

并尝试使用您选择的语言的示例之一。这极大地帮助了我,并且这些示例(到目前为止)已经在第一次尝试中起作用了!

于 2014-10-09T02:00:32.587 回答