我有一些MongoDb Capped Collections
,我正在尝试将新条目(来自另一个进程)流式传输到我的页面,SocketIO
如下所示:
服务器端:
...
var TickerSchema = new Mongoose.Schema({
bid : { type : Number },
ask : { type : Number },
mid : { type : Number },
last_price : { type : Number },
timestamp : { type : Date }
}, { capped: { size: 5242880, max: 1000, autoIndexId: true }});
var tickerStream = Ticker.find().tailable().stream();
ioserver.sockets.on('connection', function(socket){
clientsocket = socket;
tickerStream.on('data', function (doc) {
clientsocket.emit('ticker', doc);
}).on('error', function (err) {
console.log('error: '+err);
}).on('close', function () {
// the stream is closed
system.debug('close');
});
...
客户端:
var socket = io.connect('http://localhost');
function TickerController($scope, $http, $window)
{
$scope.ticker = null;
$scope.init = function(){
}
$window.socket.on('ticker', function(ticker){
console.log(ticker);
$scope.$apply(function(){
$scope.ticker = ticker;
});
});
}
但是当我运行应用程序时,我得到了新事件,但我得到了 2-3 个事件,而不是只插入了 1 个新文档。
我检查了集合,它没有重复项 - 我在同一个套接字上有多个通道,这可能是问题吗?