侦听来自另一个node.js应用程序的通知

时间:2016-06-08 09:03:09

标签: javascript node.js socket.io

我有2个loopback node.js应用程序。在1个应用程序中,我创建了一个socket.io服务器并发出一些事件如下..

app.io = require('socket.io')(app.start());

    app.io.sockets.on('connection', function(socket) {
      var watcher = chokidar.watch('transactions.xlsx', {ignored: /^\./, persistent: true});
       watcher
        .on('change', function(path) {
          xlsx({
            input: "transactions.xlsx",
            output: null
          }, function(err, transactions) {
            if(err) {
              console.error(err);
            } else {
              console.log(transactions);
              app.io.sockets.volatile.emit('notification', transactions);
            }
          });
        });
    });

我如何在app2中收听此通知事件。

My Flow应该是:

Emit from app1----->listen in app2----->then send notification to client side

请分享您的想法。谢谢。

2 个答案:

答案 0 :(得分:1)

如果您希望一个节点应用程序成为另一个节点应用程序(即套接字服务器)的套接字客户端,则应使用https://www.npmjs.com/package/socket.io-client

答案 1 :(得分:0)

  
      
  1. 为其他正在运行的node.js app
  2. 创建连接   
  3. 将通知作为发送与其他连接
  4. 传递         

    <script src="http://code.jquery.com/jquery-1.7.1.min.js"></script> <script src="http://localhost:3200/socket.io/socket.io.js"></script> <script> // creating a new websocket var socket = io.connect('http://localhost:3200'); var other_socket = io.connect('http://localhost:3400'); // url of other node.js app // on every message recived we print the new datas inside the #container div socket.on('notification', function (data) { // convert the json string into a valid javascript object $('#container').html(data[0].Balance); $('time').html('Last Update:' + new Date()); other_socket.emit('notification', data); }); </script>

         

    对于来自app1的Emit -----&gt;直接在app2中收听;使用socket.io-client库如下 -

`var io = require('socket.io-client');
 var client1 = io.connect('socketURL1');
 var client2 = io.connect('socketURL2');
 client1.on('notification', function (data) {
 client2.emit('notification', JSON.stringify(data));
 });`