2013-06-19 57 views
1

我在網站分析中使用zeromq來實時記錄日誌。客戶端中的偵聽事件zeromq - node.js

詳細信息: 我正在閱讀日誌文件(Web分析日誌文件)。每當日誌文件被修改時,都要被讀取。它與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的新手。任何幫助將是偉大的。

回答

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); 
    }); 
+0

我在服務器上有用戶進行測試。因爲我不知道訂戶在客戶端。我已經看過上面鏈接中的例子。我的疑問是如何在客戶端需要zmq。 – karthick

+0

我跟着你給我的那個鏈接,發現我之前一直在做的例子是錯誤地形成的。您提供的鏈接中的示例立即生效並立即開始工作!我在這裏發佈了我的經驗作爲答案。 – Blairg23

+0

不錯,很高興看到回饋社區的貢獻:-D – raffian

1

這可能不涉及到你的問題,但我想我會的情況下,其他人是否有正從ØMQ或zguide的例子問題補充這一點。

如果您正在從這個頁面服務器 - 客戶端示例(或類似的例子,從您所選擇的語言設置):

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

和它不工作,然後嘗試檢查了這個頁面:

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

,並嘗試在您所選擇的語言的例子之一。這對我非常有幫助,迄今爲止的例子已經在第一次嘗試中起作用了!