1

我有一些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 个新文档。

我检查了集合,它没有重复项 - 我在同一个套接字上有多个通道,这可能是问题吗?

在此处输入图像描述

4

0 回答 0