我使用了nodesearch的elasticsearch模块从elasticsearch获取数据。 使用client.search()获取数据。 代码:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var elasticsearch = require('elasticsearch');
var client = new elasticsearch.Client();
app.get('/', function(req, res){
res.sendfile('index.html');
});
io.on('connection', function(socket){
client.search({
index: 'myindex',
type: 'mytype',
size: 5,
body: {
query: {
match_all : { }
}
}
}).then(function (resp) {
var hits = resp.hits.hits;
console.log(hits);
socket.emit("data", hits);
}, function (err) {
console.trace(err.message);
});
socket.on("disconnect", function () {
console.log('disconnected');
});
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
但是使用这段代码我没有将新数据添加到elasticsearch中。 请建议我如何使用Socket.io从ES中获取流数据?