Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js MongoDb可裁剪流媒体返回重复项_Node.js_Mongodb_Sockets_Angularjs_Socket.io - Fatal编程技术网

Node.js MongoDb可裁剪流媒体返回重复项

Node.js MongoDb可裁剪流媒体返回重复项,node.js,mongodb,sockets,angularjs,socket.io,Node.js,Mongodb,Sockets,Angularjs,Socket.io,我有一些MongoDb Capped集合,我正试图通过SocketIO将新条目(来自另一个进程)流式输出到我的页面,如下所示: 服务器端: ... var TickerSchema = new Mongoose.Schema({ bid : { type : Number }, ask : { type : Number }, mid : { type : Number }, last_price : { type : Number }, timestam

我有一些
MongoDb Capped集合
,我正试图通过
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个新文档

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


取出$scope.$apply并重试。当我不使用
$scope.$apply时,页面上的这些项目不会得到更新。我不认为让我看看OK。。。尝试过它。。。没有更改,除了项目没有出现在页面上(在
JADE
模板中),并且它们在
控制台.log
语句中仍然是重复的文档。