【问题标题】:Listening event in client side zeromq - node.js在客户端 zeromq - node.js 中监听事件
【发布时间】:2013-06-19 06:00:43
【问题描述】:

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

详情: 我正在阅读日志文件(网络分析日志文件)。每当日志文件被修改时,它就会被读取。它与 ubuntu 中的 tail 相同。我正在使用 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 的新手。任何帮助都会非常有用。

【问题讨论】:

    标签: node.js filestream zeromq


    【解决方案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);
      });
    

    【讨论】:

    • 我在服务器中有订阅者进行测试。因为我不知道在客户端订阅。我已经在上面的链接中看到了示例。我的疑问是如何在客户端要求 zmq。
    • 我点击了你给我的链接,发现我之前处理的示例格式不正确。您提供的链接中的示例立即生效并立即生效!我在这里发布了我的经验作为答案。
    • 很好,很高兴看到对社区的贡献:-D
    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2019-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      • 2020-06-24
      相关资源
      最近更新 更多