3

我正在寻找开发一个依赖于与外部服务 API 对话的新应用程序。

例如,我想创建一个实时 Twitter 提要,每次有新推文时都会更新,我想使用 Meteor 作为框架,但我不确定 Meteor 是否可以在不刷新页面的情况下自动显示新推文。

我知道我可以用 Node.js 和 Socket.io 做到这一点,但是否可以只用 Meteor 做到这一点?

谢谢

4

2 回答 2

5

从外部来源检索数据基本上有两种方法。服务器上的 Ajax 或 http 请求。我最近解决了这个问题,但不得不使用第二种方法。

客户端.js

Meteor.startup( function() {
    Meteor.call( 'openSession', function( err, res ) {
        if( !err ) Session.set( 'data', res );
    });
});

服务器.js

Meteor.methods({
    openSession: function() {
        var fut = new Future(), url = 'http://www.google.com';

        // Do call here, return value with Future
        Meteor.http.get(url, function( err, res ){
            fut.ret(res);
        });

        // Force method to wait on Future return
        return fut.wait();
    }

});

如您所见,我不得不使用 Future 让 Meteor 与异步 http 请求一起播放。但是,它就像在服务器端定义方法一样简单,然后在客户端调用它。

于 2012-11-03T01:16:49.840 回答
2

Meteor.http获取外部数据。(文档

您可以在服务器中使用它并将新推文添加到集合中。

订阅此集合的所有客户端当然会保持同步。

于 2012-11-02T11:17:52.283 回答