使用express.io发送消息

时间:2014-03-24 02:54:11

标签: node.js socket.io express.io

我正在使用express.io和我的应用程序。我试图完成以下任务:在我的应用程序中,有一个/products http路由,它加载静态产品数据并立即返回。还有其他动态产品数据,计算时间更长。客户端不应该等待计算,因此想法是,动态数据通过socket.io以异步方式推送到客户端。我想这样做:

server.get('/products', function(req,res,next) {
  products.getProducts(function(products) {
    res.send(products);
    app.getDynamicProductData(products, function(dynamicData) {
      req.updateData = dynamicData;
      req.io.route('update_dynamic_product_data');
    });
  });
});

server.io.route('update_dynamic_product_data', function(req) {
  req.io.emit('products_update', req.updateData);
})

不幸的是,这会引发异常TypeError: Object #<Object> has no method 'emit'

在route函数中显示req.io对象返回:

{ broadcast: [Function], respond: [Function], route: [Function], data: {} }

为什么这里缺少emit方法,我怎样才能使它工作?

0 个答案:

没有答案