我期待開發一個新的應用程序,它依賴於與外部服務API交談。實時Meteor.js http.get
例如,我想創建一個實時Twitter資訊提供,每次有新的推文時更新,我想使用Meteor作爲框架,但我不確定是否有可能讓Meteor自動顯示新的推文而沒有刷新頁面。
我知道我可以用Node.js和Socket.io來做到這一點,但是可以單獨做Meteor嗎?
由於
我期待開發一個新的應用程序,它依賴於與外部服務API交談。實時Meteor.js http.get
例如,我想創建一個實時Twitter資訊提供,每次有新的推文時更新,我想使用Meteor作爲框架,但我不確定是否有可能讓Meteor自動顯示新的推文而沒有刷新頁面。
我知道我可以用Node.js和Socket.io來做到這一點,但是可以單獨做Meteor嗎?
由於
基本上有兩種從外部來源檢索數據的方法。服務器上的Ajax或http請求。我最近解決了這個問題,但不得不使用第二種方法。
Client.js
Meteor.startup(function() {
Meteor.call('openSession', function(err, res) {
if(!err) Session.set('data', res);
});
});
Server.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();
}
});
正如你所看到的,我不得不用未來做流星與異步HTTP請求一起玩。但是,這與在服務器端定義方法一樣簡單,然後在客戶端調用該方法。
不要忘了添加http軟件包'meteor add http' –