我有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
。
请分享您的想法。谢谢。
答案 0 :(得分:1)
如果您希望一个节点应用程序成为另一个节点应用程序(即套接字服务器)的套接字客户端,则应使用https://www.npmjs.com/package/socket.io-client
答案 1 :(得分:0)
- 为其他正在运行的node.js app
创建连接- 将通知作为发送与其他连接
传递 醇>
<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));
});`